url 경로가 조금씩 틀려서 문제가 생길때 처리하기 위해 만든 Controller
Spring은 Controller에서 View에 대한 위치값을 지정하게 처리 되므로 Controller에다가 uri값을 비교해서 분기 시킨다.
Struts는 한 Controller에서 보여줄 View값을 xml에서 세팅할 수 있다.
contextPath에 대한 확장성을 두기 위해 uri.equals 대신에 uri.indexOf 를 사용했고..
int begin = uri.indexOf('/', 1); 1로 두어서 제일 첫 부분의 contextPath는 제외되게끔 처리하였다.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class UrlController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
String fileName = "";
String uri = request.getRequestURI();
if(uri.indexOf("/sssss/zzzz.do") > -1) {
fileName = "/sssss/xxxx/zzzz";
} else {
fileName = etcUrl(uri);
}
return new ModelAndView(fileName);
}
public String etcUrl(String uri) {
String fileName;
int begin = uri.indexOf('/', 1);
if (begin == -1) {
begin = 0;
} else {
begin++;
}
int end;
if (uri.indexOf(";") != -1) {
end = uri.indexOf(";");
} else if (uri.indexOf("?") != -1) {
end = uri.indexOf("?");
} else {
end = uri.length();
}
fileName = uri.substring(begin, end);
if (fileName.indexOf(".") != -1) {
fileName = fileName.substring(0, fileName.lastIndexOf("."));
}
return fileName;
}
}
'Jsp-Servlet > Spring' 카테고리의 다른 글
CommandMapArgumentResolver (3) | 2011.03.21 |
---|---|
BeanNameAware, BeanFactoryAware, ApplicationContextAware (2) | 2011.02.18 |
url에 해당되는 jsp페이지를 바로 연결 처리 (1) | 2011.01.09 |
spring 2.5 String Utils API (3) | 2011.01.04 |
struts1 + spring2.0 setting (2) | 2010.04.23 |