SpringMVC 뷰 Resolver 찾기 시퀀스

이전 예제 에서 Internal ResourceView Resolver 를 사용 하여 보 기 를 찾 았 지만 Spring MVC 기반 웹 프로그램 마다 하나의 View Resolver 만 사용 할 수 있 는 것 은 아 닙 니 다.실제로 Dispatcher-Servlet 는 웹 요청 을 처리 하기 위해 여러 개의 Handler Mapping 을 받 아들 일 수 있 을 뿐만 아니 라 여러 개의 View Resolver 를 받 아들 여 보기 의 검색 을 처리 할 수 있 습 니 다.
Dispatcher Servlet 초기 화 시,형식 에 따라 자신의 WebApplication Context 에서 정의 하 는 ViewResolver 를 검색 합 니 다.여러 개의 ViewResolver 가 존재 하 는 정 의 를 찾 으 면 Dispatcher Servlet 은 이 ViewResolver 의 우선 순위 에 따라 정렬 한 다음 논리 적 보기 이름 에 따라 구체 적 인 View 인 스 턴 스 를 찾 아야 할 때 정렬 된 순서에 따라 ViewResolver 를 옮 겨 다 닙 니 다.그 동안 모든 ViewResolver 가 비 어 있 는 View 인 스 턴 스 로 돌아 가면 현재 검색 이 끝 납 니 다.Dispatcher Servlet 이 현재 웹 애플 리 케 이 션 Context 에서 ViewResolver 정 의 를 찾 지 못 하면 Internal ResourceView Resolver 를 기본 ViewResolver 로 사용 합 니 다.
ViewResolver 의 우선 순위 지정 은 Ordered 인 터 페 이 스 를 기준 으로 합 니 다.이것 은 Spring 프레임 워 크 에서 우선 순위 방식 을 설정 하 는 관례 가 되 었 습 니 다.만약 에 리 소스 BundleView Resolver 를 사용 하여 논리 적 인 보기 이름 을 구체 적 인 View 인 스 턴 스 로 찾 고 싶다 고 가정 합 니 다.찾 지 못 하면 Internal ResourceView Resolver 의 도움 을 받 습 니 다.Dispatcher-Servlet 의 WebapplicationContext 에 다음 설정 내용 을 추가 할 수 있 습 니 다.
 
<bean id="resourceBundleViewResolver"
 class="org.springframework.Web.servlet.view.
ResourceBundleViewResolver">  
<property name="order" value="1"></property>  
</bean>  

<bean id="viewResolver"
class="org.springframework.Web.servlet.view.
InternalResourceViewResolver">  
<property name="prefix" value="/WEB-INF/jsp/"/>  
<property name="suffix" value=".jsp"/>  
</bean> 
 
해당 ViewResolver 의 bean 은 해당 하 는 id 나 name 속성 값 을 임 의 로 정의 합 니 다.Dispatcher Servlet 는 유형 에 따라 ViewResolver 를 가 져 옵 니 다.어떤 ViewResolver 에 order 값 을 지정 하지 않 았 다 면 기본 값 은 Integer.MAX 입 니 다.VALUE,대응 하 는 것 은 최저 우선 순위 다.
Dispatcher Servlet 에 여러 개의 View Resolver 를 지정 하면 Internal Resour-ceView Resolver 및 기타 Url Based View Resolver 하위 클래스 의 높 은 우선 순 위 를 주지 마 십시오.이 View Resolver 들 은 해당 보 기 를 찾 지 못 하 더 라 도 null 로 돌아 가 다음 View Resolver 에 문의 할 기 회 를 주지 않 기 때 문 입 니 다.우리 가 지정 한 다른 View Resolver 는 사실상 허구 이다.합 리 적 인 처리 방식 은 리 소스 BundleView-Resolver 또는 XmlViewResolver 를 주 는 것 입 니 다.null 을 되 돌려 서 해당 보 기 를 찾 을 수 없 는 ViewResolver 의 높 은 우선 순 위 를 표시 할 수 있 습 니 다.Internal ResourceView Resolver(또는 다른 유사 한 행위 의 ViewResolver)를 최소 우선 순위 ViewResolver 로 추가 할 수 있 습 니 다.Dispatcher Servlet 의 예비 검색 대상 으로 합 니 다.

좋은 웹페이지 즐겨찾기