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를 이용한 소스 코드를 보면서 이러한 매커니즘을 이해할 필요가 있는데, 이는 다음 절에서 예제를 통해서 살펴보도록 하겠다.

번호 제목 글쓴이 날짜 조회 수
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 5083
84 @ConfigurationProperties 사용하기 황제낙엽 2025.10.23 1617
83 Spring Boot 에서 서버 로직의 역할별 애노테이션 구분 황제낙엽 2025.10.13 1411
82 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) file 황제낙엽 2023.12.23 2817
81 Spring Boot PetClinic Sample Application 황제낙엽 2023.12.21 2575
80 Eclipse, Spring Boot, Gradle, SVN 레거시(2019) 시스템 유지보수 환경 구축 file 황제낙엽 2023.11.14 1732
79 [시리즈 강좌] 스프링부트로 웹서비스 구축하기 황제낙엽 2023.07.13 1691
78 Spring Boot에서의 RESTful API 모듈 file 황제낙엽 2020.04.16 1896
77 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 2053
76 Spring Framework 에서 사용하는 annotation 황제낙엽 2024.01.17 2093
75 Spring MVC configuration file 황제낙엽 2024.01.17 2041
74 [스프링 시큐리티 OAuth2] 강의 자료와 학습용 소스 file 황제낙엽 2024.01.15 1595
73 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 2016
72 Spring, JSP, Gradle, Eclipse 환경 구축[2] - 샘플 프로젝트 file 황제낙엽 2023.12.24 1922
71 Spring, JSP, Gradle, Eclipse 환경 구축[1] - 레퍼런스 조사 황제낙엽 2023.12.23 2056
70 spring-security-samples 황제낙엽 2023.12.22 1800
69 [Bard] Spring 과 Spring Boot의 차이 file 황제낙엽 2023.12.21 1803
68 Spring 과 Spring Boot의 차이 file 황제낙엽 2020.05.26 2308
67 Spring Security OAuth2.0 파헤치기 황제낙엽 2019.09.05 2079
66 Spring Security OAuth2구현 file 황제낙엽 2019.09.05 2208
65 Spring Security OAuth 황제낙엽 2019.09.05 2442