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
23 Spring프레임워크 소개문서 (2) 황제낙엽 2007.03.22 123
22 Spring프레임워크 소개문서 (1) 황제낙엽 2007.03.22 107
21 Cugain의 샘플프로젝트 jpetstore 분석기 - (1) jpetstore 설치 file 황제낙엽 2007.02.22 123
20 Cugain의 샘플프로젝트 jpetstore 분석기 - (7) PetStoreImpl.java 황제낙엽 2007.05.24 51
19 Cugain의 샘플프로젝트 jpetstore 분석기 - (6) petstore-servlet.xml 분석 황제낙엽 2007.04.27 19
18 Cugain의 샘플프로젝트 jpetstore 분석기 - (5) applicationContext.xml 분석 황제낙엽 2007.04.21 232
17 Cugain의 샘플프로젝트 jpetstore 분석기 - (4) dataAccessContext-jta.xml 분석 황제낙엽 2007.04.21 27
16 Cugain의 샘플프로젝트 jpetstore 분석기 - (3) dataAccessContext-local.xml 분석 황제낙엽 2007.04.21 40
15 Cugain의 샘플프로젝트 jpetstore 분석기 - (2) web.xml 분석 황제낙엽 2007.03.20 92
14 IoC (Inversion of Control) 컨테이너에 대한 정리 황제낙엽 2007.02.21 50
13 자바지기 1차 오픈 소스 스터디 문서모음 file 황제낙엽 2007.01.30 46
12 Spring 프레임워크를 이용한 효율적인 개발 전략 1차 황제낙엽 2007.01.30 47
11 Spring framework jpetstore 샘플 분석기 - (6) jpetstore 예제로 살펴보는 Spring MVC와 iBatis 연동 황제낙엽 2007.01.18 48
» Spring framework jpetstore 샘플 분석기 - (5) jpetstore 에서의 InternalResourceViewResolver 황제낙엽 2007.01.18 17
9 Spring framework jpetstore 샘플 분석기 - (4) jpetstore 에서의 HandlerMapping 황제낙엽 2007.01.18 36
8 Spring framework jpetstore 샘플 분석기 - (3) jpetstore 에서의 Spring MVC 설정 황제낙엽 2007.01.18 13
7 Spring framework jpetstore 샘플 분석기 - (2) jpetstore 에서의 Spring 초기 설정과 IoC 황제낙엽 2007.01.18 18
6 Spring framework jpetstore 샘플 분석기 - (1) jpetstore 설치하기 황제낙엽 2007.01.18 30
5 Spring WebFlow Introduction (웹개발을 직관적으로) 황제낙엽 2006.12.09 555
4 IoC(Inversion of Control)란 무엇인가? 황제낙엽 2006.12.09 93