2012/06/27 10:34

spring view resolver Spring



view Resolver..
대충만 알고 있었는데
후배가 물어보니, 좀 깊이있게 알아보고자 검색해봤다.. 
http://murimi.tistory.com/9 에서 가져왔어요.. 감사해용~

View Resolver

핸들러(controller)는 요청을 처리 한 뒤 ModelAndView 객체를 넘겨준다. 이 때 이 객체에 view의 이름을 같이 넘겨 주는데 이 이름으로 실제 view를 찾아 주는 역할을 하는 것이 View Resolver이다. Spring이 제공하는 View Resolver들은 다음과 같다.

ViewResolver설명
AbstractCachingViewResolverView 들을 cashing하는 기능 제공
XmlViewResolverViewResolver 의 구현체로 XML파일 사용(/WEB-INF/views.xml 을 기본 설정파일로 사용)
ResourceBundleViewResolverViewResolver 의 구현체로 리소스 파일 사용(views.properties 를 기본 리소스 파일로 사용)
UrlBasedViewResolverViewResolver 의 구현체로 특별한 맵핑 정보 없이 의미상 view 이름을 URL로 사용(View 이름과 실제 view 자원과의 이름이 같을 때 사용)
InternalResourceViewResolverUrlBasedViewResolver 를 상속 받았으며 InternalResourceView(Servlet, JSP)를 사용
VelocityViewResolver/FreeMarkerViewResolverUrlBasedViewResolver 를 상속 받았으며 VelocityView 와 FreeMarkerView를 사용

사용하려는 기술에 따라 위와같은 View Resolver를 적절히 선택하여야한다.

  • JSP 사용

    <bean id="viewResolver"      class="org.springframework.web.servlet.view.UrlBasedViewResolver">    <property name="prefix" value="/WEB-INF/jsp/"/>    <property name="suffix" value=".jsp"/></bean>

    viewResolver는 action 요청 처리 후 사용자에게 보여줄 view를 찾는 역할을 하고 prefix와 suffix를 지정해 줄수 있다. 만약 controller에서 넘겨준 modelAndView 값이 index이고 prefix를 "/jsp/", suffix를 ".jsp"라고 정의 했다면 이 viewResolver는 "/jsp/index.jsp"를 찾게 된다. 이러한 viewResolver 정보를 변경함으로써 Velocity, Excel, PDF등을 View로 이용하는 것이 가능하다.

  • JSTL 사용

    <bean id="jspViewResolver"    class="org.springframework.web.servlet.view.InternalResourceViewResolver">  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  <property name="prefix" value="/WEB-INF/jsp/"/>  <property name="suffix" value=".jsp"/></bean>

    만약 JSTL 태그를 사용한다면 viewClass 특성을 설정함으로써 InternalResourceView를 JstlView로 대체해야 한다. JstlView도 요청을 JSP에 전달한다.


덧글

댓글 입력 영역