본문 바로가기

Java & Html

SpringFrameWork ViewResolver 정의

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


  ViewResolver
  - 컨트롤러 객체에 의해 반환된 ModelAndView객체의 View 부분의 논리적 이름에 해당하는 View의 결정을 제공
  - JSP, Velocity, FreeMarker, PDF, Microsoft Excel등 다양한 뷰 지원
  - org.springframework.web.servlet.ViewResolver 인터페이스를 구현한 여러가지ViewResolver 지원

  Spring에서 지원하는 View Resolver

  1) AbstractCachingViewResolver
  - Caching Vie를 다루는 추상(Abstract) ViewResolver
  - 해당 View를 확장(extends)하는 View는 Caching 기능을 제공한다.

  2) XmlViewResolver
  - Spring의 bean 팩토리처럼DTD를 가진XM내 쓰여진 사항을 기초로 동작하는ViewResolver
  - 디폴트 설정 파일은/WE-INF/view.xml

  3) ResourceBundleViewResolver

  - ResourceBundl의 basname 속성에 명시된 bean 정의를 사용하는 ViewResolver
  - 다른 ViewResolver와 혼합해서 사용 가능
  - 디폴트 설정 파일은views.properties
  - [viewname].class = [viewname].url 형태로 설정

  4) UrlBasedViewResolver
  - 추가적인 어떤 맵핑 작업을 하지 않고UR의 상징적인view 이름을 사용하는 ViewResolver
  - 단순 JSP만 사용할 경우 사용이 가능하다.
  - 보통 해당 클래스를 확장하여 제공하는 별도의 ViewResolver를 사용한.

  5) InternalResourceViewResolver
  - JSP, 서블릿, JstlView, TilesView같은 View 기능을 제공하는 UrlBasedViewResolver의 편리한 하위 클래스

  6) VelocityViewResolver
  - Velocity View기능을 제공하는 UrlBasedViewResolver의 편리한 하위 클래스

  7) FreeMarkerViewResolver
  - FreeMarker View 기능을 제공하는 UrlBasedViewResolver의 편리한 하위 클래스

 ViewResolvers Chaining(혼합 사용)
 - 여러개의 ViewResolver가 있을 경우에 혼합해서 사용 가능
 - defaultParentVie: 상위 ViewResolver의 설정사항을 오버라이드 가능
 - order: 여러개의 ViewResolver가 존재할 경우 순서를 결정

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

 ResourceBundleViewResolver 사용 예제
 <bean id="viewResolver" class="org.springframework.web.servlet.viewResourceBundleViewResolve">
     <!-- view.propertie에 기술-->
     property name="basenam" value="views"/>
     <!-- views.properties파일에 정의되지 않을 경우에는 parentView 에 정의된 사항을 따른다-->
     property name="defaultParentVie" value="parentView"/>
 </bean>

  bookView.class = org.springframework.web.servlet.view.JstlView
  bookView.url = WEB-INF/jsp/book/bookView.jsp

  bookEdit.class = org.springframework.web.servlet.view.JstlView
  bookEdit.url = WE-INF/jsp/book/bookEdit.jsp

 InternalResourceViewResolver 사용 예제
 <bean id="viewResolver" class="org.springframework.web.servlet.viewInternalResourceViewResolver">
      <property name=viewClas" value="org.springframework.web.servlet.view.JstlView"/>
      <property name=prefix" value="/WEB-INF/jsp/spring/"/>
      <property name=suffix" value=".jsp"/>
 </bean>

XmlViewResolver 사용 예제
 <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
     <property name="prefix" value="/WE-INF/jsp/"/>
     <property name="suffix" value=".jsp"/>
 </bean>
 <bean id="excelViewResolver" class="org.springframework.web.servlet.viewXmlViewResolve">
     <property name="order" value="1"/>
     <property name=locatio" value="/WEB-INF/simpleviews.xml"/>
 </bean>

 <!-- simpleviews.xml -->
 <beans>
     <bean name="report" class="org.springframework.example.ReportExcelView"/>
 </beans>