본문 바로가기
Spring

[Spring] UrlBasedViewResolver 다중 설정

by 자바초보자 2015. 10. 7.
728x90

[Spring] UrlBasedViewResolver 다중 설정

spring com-servlet.xml 에 UrlBasedViewResolver 설정으로
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView"/>
action class 에서
return "list" ->/WEB-INF/jsp/list.jsp 로 변환되어 실제 경로를 찾아간다.
하지만 /WEB-INF/jsp 외에 다른경로에 결과 jsp가 있을경우 다중설정을 통해 사용할 수 있다.
하지만 order로 여러개를 추가하여도 에러만 발생되고 다음 ViewResolver 넘어가지 못한다..
페이지가 없을경우 Exception이 발생되어 다음 order로 설정되지 않는다..
그래서 CustomViewResolver를 생성하여 UrlBasedViewResolver 를 상속하여 return null이 발생하도록
처리해준다.

 

 


CustomViewResolver.java
package egovframework.com.cmm;
import java.util.Locale;
import org.springframework.core.Ordered;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.view.AbstractUrlBasedView;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
public class CustomViewResolver extends UrlBasedViewResolver implements Ordered {
@Override
protected View loadView(String viewName, Locale locale) throws Exception {
// TODO Auto-generated method stub
AbstractUrlBasedView view = buildView(viewName);
View viewObj = (View) getApplicationContext().getAutowireCapableBeanFactory().initializeBean(view, viewName);
if (viewObj instanceof JstlView) {
JstlView jv = (JstlView) viewObj;
if (jv.getBeanName().indexOf(".jsp") != -1) {
    return null;
}
}
return viewObj;
}
}

 

 


egov-com-servlet.xml
<bean class="egovframework.com.cmm.CustomViewResolver" p:order="1" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView"/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2" p:prefix="" p:suffix=""/>
==>return 되는 값에 .jsp가 있을경우 null을 발생시켜 다음 ViewResolver 로 넘어가도록 설정하였다.
return "/WEB-INF/view.jsp" --->null이 발생되어 다음 ViewResolver 로 넘어가게 된다.

 

728x90

'Spring' 카테고리의 다른 글

[Spring] AOP를 이용한 속도 측정  (0) 2015.10.07
spring bean 객체 얻어오기  (0) 2015.10.07
Spring 다국어 변경  (0) 2015.10.07
Spring schedule  (0) 2015.10.07
Spring ExceptionResolver  (0) 2015.10.07