프로그래밍/Spring

Spirng MVC 뷰 리졸빙

guitarhero 2013. 4. 3. 14:20
728x90

요청 처리의 마지막 과정은 사용자에게 결과를 렌더링해서 보여주는 일이다. 일반적으로 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...

 

 

 

728x90

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

[AOP]Aop사용시 추가사항  (0) 2017.10.27
스프링 MVC를 이용한 요청 추적  (0) 2013.04.02
XML에서 트랜잭션 선언  (0) 2013.04.02