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 |