달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2012. 3. 7. 15:41

[ViewResolver] ViewResolver I.lib()/I.lib(Spring)2012. 3. 7. 15:41

.. .. ..
[펌] : http://linuxp.tistory.com/entry/Spring-Framework%EC%9D%98-ViewResolver

ViewResolver

- 컨트롤러 객체에 의해 반환된 ModelAndView 객체의 View 부분의 논리적 이름에 해당하는 View의 결정을 제공

- JSP, Velocity, FreeMarker, PDF, Microsoft Excel 등 다양한 뷰 지원

- org.springframework.web.servlet.ViewResolver 인터페이스를 구현한 여러가지 ViewResolver 지원


Spring에서 지원하는 View Resolver

1) AbstractCachingViewResolver

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

2) XmlViewResolver

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

3) ResourceBundleViewResolver

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

4) UrlBasedViewResolver

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

5) InternalResourceViewResolver

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

6) VelocityViewResolver

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

7) FreeMarkerViewResolver

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


ViewResolvers Chaining(혼합 사용)

- 여러개의 ViewResolver가 있을 경우에 혼합해서 사용 가능

- defaultParentView: 상위 ViewResolver의 설정사항을 오버라이드 가능

- order : 여러개의 ViewResolver가 존재할 경우 순서를 결정


UrlBasedViewResolver 사용 예제

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



ResourceBundleViewResolver 사용 예제

<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<!-- view.properties에 기술 -->
<property name="basename" value="views"/>
<!-- views.properties 파일에 정의되지 않을 경우에는 parentView 에 정의된 사항을 따른다 -->
<property name="defaultParentView" 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 = WEB-INF/jsp/book/bookEdit.jsp



InternalResourceViewResolver 사용 예제


<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" 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="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
< /bean>
< bean id="excelViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order" value="1"/>
<property name="location" value="/WEB-INF/simpleviews.xml"/>
< /bean>

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