sitelink1  
sitelink2  
sitelink3 http://1 
extra_vars6 ko 

jpetstore 예제를 통한 InternalResourceViewResolver 설정하기

jpetstore 에서 InternalResourceViewResolver 클래스를 사용하여 WebApplicationContext에 선언하는 것은 이전에 살펴본 다음 그림 “Spring MVC 에서 HTTP Request 처리 과정”의 5, 6번째에 해당하는 View/ViewResolver 를 결정하는 부분이다.
Spring MVC에서 모든 Controller들은 ModelAndView 인스턴스를 반환한다. ModelAndView 클래스에 정의되어 있는 View 정보가 논리적인 View 이름일 경우(jpetstore에서 뿐만 아니라 대부분 논리적인 View 이름을 사용할 것을 권장한다), 빈 설정 파일에 정의되어 있는 ViewResolver 클래스를 이용하여 클라이언트에게 출력할 View 객체를 얻게된다. ModelAndView 클래스에 정의되어 있는 View 정보가 View 객체를 통하여 Controller에서 반환되었다면 DispatcherServlet은 View 객체를 이용하여 클라이언트에 화면을 출력하게 된다.

그러면, jpetstore에서 InternalResourceViewResolver 를 WebApplicationContext에 설정한 부분을 살펴보자. WEB-INF/petstore-servlet.xml 파일에 해당하는 부분이 존재한다.

<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>

InternalResourceViewResolver 클래스는 UrlBasedViewResolver를 상속받아 구현한 클래스이다. 실제로 하는 일은 View 클래스를 결정하는 일인데, Controller에서 논리적인 View 임으로 생성된 이름과 일치하는 클래스 형태로 생성하게 된다. 위의 설정된 값을 예로 들면, 만약 Controller에서 “Cateory”라는 논리적인 이름으로 ModelAndView 가 전달(리턴)된다면 prefix 설정에 의해서 “WEB-INF/jsp/spring” 디렉토리, suffix 설정에 의해서 Category.jsp 라는 형태로 View가 결정되는 것이다.
이러한 구조는 Spring MVC에서 URL Mapping을 위한 설정에서 Controller를 통해 얻어진 논리적인 View 이름으로 Presentation Layer를 담당할 View 클래스를 결정하는 것이다.

실제 Spring MVC를 이용한 소스 코드를 보면서 이러한 매커니즘을 이해할 필요가 있는데, 이는 다음 절에서 예제를 통해서 살펴보도록 하겠다.

번호 제목 글쓴이 날짜 조회 수
공지 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) 황제낙엽 2023.12.23 0
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 6
28 Spring Framework 에서 사용하는 annotation 황제낙엽 2024.01.17 1
27 Spring MVC configuration file 황제낙엽 2024.01.17 0
26 Spring, JSP, Gradle, Eclipse 환경 구축[2] - 샘플 프로젝트 file 황제낙엽 2023.12.24 0
25 Spring, JSP, Gradle, Eclipse 환경 구축[1] - 레퍼런스 조사 황제낙엽 2023.12.23 1
24 [Bard] Spring 과 Spring Boot의 차이 file 황제낙엽 2023.12.21 4
23 Spring 과 Spring Boot의 차이 file 황제낙엽 2020.05.26 202
22 Spring Boot에서의 RESTful API 모듈 file 황제낙엽 2020.04.16 216
21 Spring Security OAuth2.0 파헤치기 황제낙엽 2019.09.05 77
20 Spring Security OAuth2구현 file 황제낙엽 2019.09.05 462
19 Spring Security OAuth 황제낙엽 2019.09.05 435
18 [Spring3.1.1] Eclipse 에 Spring Framework 환경 구축하기 file 황제낙엽 2018.08.08 90
17 웹 개발의 변화와 스프링 황제낙엽 2008.03.19 132
16 Spring MVC 가 아닌 환경에서 Spring Pojo Bean 사용하기 (Pure Java App 또는 Servlet App) 황제낙엽 2009.10.22 233
15 프로젝트의 기본이 되는 Logging, Exception 처리 전략 황제낙엽 2007.01.30 85
14 SimpleFormController 정리 황제낙엽 2007.09.19 206
13 스프링 개발팁 황제낙엽 2007.08.17 223
12 유효성체크 (org.springframework.validation.Validator) 황제낙엽 2007.08.17 129
11 CSS와 XHTML을 사용한 효율적인 View 개발 전략 황제낙엽 2007.01.30 104
10 Spring framework jpetstore 샘플 분석기 - (6) jpetstore 예제로 살펴보는 Spring MVC와 iBatis 연동 황제낙엽 2007.01.18 48
» Spring framework jpetstore 샘플 분석기 - (5) jpetstore 에서의 InternalResourceViewResolver 황제낙엽 2007.01.18 17