Spring MVC - Views

프로그래밍/Spring MVC 2009. 12. 23. 14:00


Views and resolving them

웹 어플리캐이션을 위한 모든 MVC 프레임워크는 view 를 기술하는 방법을 제공한다.
spring 또한 view resolver 를 제공하여 model 을 렌더링할 수 있다.
spring 에서 view 를 다루기 위해서는 ViewResolver 와 View 인터페이스가 사용된다.
ViewResolver 는 view name 과 실제 view 와의 mapping 을 처리한다.
View 는 request 를 준비한 후 view 를 처리할 곳에 넘긴다.

ViewResolver
Spring 의 모든 controller 는 ModelAndView 객체를 리턴한다.

viewresolvers
AbstractCachingViewResolver : 캐싱된 view 를 다루는 view resolver
XmlViewResolver : xml 에 설정된 정보를 사용하는 view resolver. 기본 설정파일로 /WEB-INF/views.xml 파일이 사용된다.
ResourceBundleViewResolver : view.properties 파일을 사용하는 view resolver.
UrlBasedViewResolver : request url 을 사용하는 view resolver.
InternalResourceViewResolver : UrlBasedViewResolver 의 하위객체로 InernalResourceView(Servlet, jsp) 와 jstlView, TilesView 를 지원한다.
VelocityViewResolver / FreeMarkerViewResolver : UrlBasedViewResolver 의 하위객체로 VelocityView, FreeMakerView 를 지원한다.

view 로서 jsp 를 사용할 경우에는 UrlBasedViewResolver 를 사용할 수 있다.
UrlBaseViewResolver 는 viewname 을 url 로 변환한다.

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

만약 viewname 이 test 일 경우에는 view 로 /WEB-INF/jsp/test.jsp 가 사용된다.

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <property name="basename" value="views"/>
    <property name="defaultParentView" value="parentView"/>
</bean>

ResouceBundleViewResolver 를 사용할 경우에는 view 를 결정하기 위해 [viewname].url, [viewname].class property 가 사용된다.

caching
AbstractCachingViewResolver 는 resolve 결과를 cache 하여 성능을 향상시킬 수 있다. cache property 에 false 값을 설정하여 cache 사용을 해제할 수도 있다. 그리고 cache 된 resolve 결과를 삭제하기 위해서는 removeFromCache(String viewName, Locale loc) 메소드를 사용하면 된다.

Chaining ViewResolvers
Spring 은 하나 이상의 view resolver 를 지원한다.

Redirecting to views

RedirectView
Controller 에서 바로 redirect 하기 위해서는 Spring 에서 제공하는 RedirectView 를 사용하면 된다.

The redirect: prefix
UrlBasedViewResolver 나 그 하위 클래스를 사용할 경우에는 redirect: 라는 첨자를 사용해서 redirect를 처리할 수 있다.

The forward: prefix
UrlBasedViewResolver 나 그 하위 클래스를 사용할 경우에는 forward: 라는 첨자를 사용해서 forward를 처리할 수 있다.

 

'프로그래밍 > Spring MVC' 카테고리의 다른 글

Spring MVC - fileupload  (0) 2009.12.24
Spring MVC - Themes  (0) 2009.12.23
Spring MVC - Locale  (0) 2009.12.23
Spring MVC - Handler Mapping  (0) 2009.12.22
Spring MVC - Controllers  (0) 2009.12.22
: