728x90
프로젝트 진행 중, View의 폴더를 분리하여 관리해야하는 경우가 발생하여 이 방법을 찾게 되었음
package egovframework.example.cmmn;
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
System.out.println("CustomViewResolver");
System.out.println(viewName);
AbstractUrlBasedView view = buildView(viewName);
View viewObj = (View) getApplicationContext().getAutowireCapableBeanFactory().initializeBean(view, viewName);
if (viewObj instanceof JstlView) {
JstlView jv = (JstlView) viewObj;
...
return null;
}
return viewObj;
}
}
먼저 커스텀 Class를 만들어준다
"..."에 원하는 조건식으로 분리시켜놓는다.
여기서 Null 값을 리턴하게 되면 2번째 Resolver 로 적용되는 방식이다.
<bean class="egovframework.example.cmmn.CustomViewResolver"
p:order="1" p:prefix="A" p:suffix=".jsp"
p:viewClass="org.springframework.web.servlet.view.JstlView"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:order="2" p:prefix="B" p:suffix=".jsp"/>
Null값이 안오면 order 1번의 설정값을 사용하게되고
Null값이 나오면 order 2번의 설정값을 사용하게 된다.
위 페이지를 참고하였다.
728x90
'Dev's > Web' 카테고리의 다른 글
[Dev's] Tiles 팝업에는 적용되지 않도록 설정하기 (0) | 2022.05.04 |
---|---|
[Dev's] 스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기 (0) | 2022.01.06 |
[Dev's] 영상에 vtt 자막 동적으로 생성, 제어하기 (0) | 2021.11.15 |
[Dev's] javascript / jquery submit 방법 (0) | 2021.11.11 |
[Dev's] AWS 쓰다가 서버가 터질 경우 대처 방법? (0) | 2021.07.12 |