요청 처리의 마지막 과정은 사용자에게 결과를 렌더링해서 보여주는 일이다. 일반적으로 JSP(Java Server Page)를 그외에 Velocity, FreeMarker 등의 뷰 기술이 사용된다. DispatcherServlet은 뷰 리졸버의 도움을 받아 컨트롤러에 의해 반환된 논리적 뷰이름을 버리고 실제 뷰를 취한다.
사실 뷰 리졸버의 임무는 논리적 뷰 이름을 org.springframework.web.servlet.view의 구현체로 매핑하는 일이다. 물론 지금은 JSP로 매핑하는 작업을 수행하는 부분이라고 생각해도 충분하다.
BeannameViewResolver : 논리적 뷰 이름과 동일한 ID를 갖는 <bean>으로 등록된 View의 구현체를 찾는다.
contentNegotiatingViewResolver : 요청되는 콘텐츠 형식에 기반을 두어 선택한 하나 이상의 다른 뷰 리졸버에
위임한다.
FreeMarkerViewResolver : FreeMaker 기반의 템플릿을 찾는다. 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여서
구성한다.
InternalResourceViewResolver : 웹어플리케이션의 WAR 파일 내에 포함된 뷰 템플릿을 찾는다. 뷰 템플릿의 경로는
논리적 뷰 이름에 접두어 접미어를 붙여서 구성된다.
JasperReportsViewResolver : Jasper Reports 리포트 파일로 정의된 뷰를 찾는다. 경로는 논리적 뷰 이름에 접두어
접미어를 붙여서 구성된다
ResourceBundleViewResolver : 프로퍼티 파일에서 뷰 구현체를 찾는다.
TilesViewResolver : Tiles 템플릿으로 정의된 뷰를 찾는다. 템플릿 이름은 논리적 뷰 이름과 동일하다.
UrlBasedViewResolver : 이 뷰 리졸버는 InternalResourceViewResolver 와 같이 다른 뷰 리졸버를 위한
기본 클래스 이다.
이 자체로 사용할 수도 있지만 다른 서브클래스만큰 기능이 강력하지 않다. 예를 들어 UrlBasedViewResolver는 현재 로케일을 기반으로 뷰를 찾을 수 없다.
VelocityLayoutViewResolver : 이 뷰 리졸버는 VelocityViewResolver의 서브클래스로, 스프링의 VelocityLayoutView를
통해 페이지 구성을 지원한다. (뷰 구현체는 Velocity의 VelocitylayoutServlet을 에뮬레이트(emulate)한다.)
VelocityViewResolver : Velocity 기반의 뷰를 찾는다. 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여 구성된다.
XmlViewResolver : XML파일(/WEB-INF/views.xml)에 <bean>으로 선언된 View의 구현체를 찾는다. 이 뷰 리졸버는
애플리케이션의 스프링 컨텍스트와 별로도 뷰 <bean>이 선언된다는 점을 제외하고 BeannameViewResolver와 거의 비슷하다.
XsltViewResolver : XSLT 기반의 뷰를 찾는다. XSLT 스타일시트의 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여
구성된다.
-Spring in Action 참조- to be continued...
'프로그래밍 > Spring' 카테고리의 다른 글
[AOP]Aop사용시 추가사항 (0) | 2017.10.27 |
---|---|
스프링 MVC를 이용한 요청 추적 (0) | 2013.04.02 |
XML에서 트랜잭션 선언 (0) | 2013.04.02 |