새소식

반응형
Java/Spring

View Resolver(뷰 리졸버)

  • -
반응형

View Resolver(뷰 리졸버)

컨트롤러는 최종적으로 결과를 출력할 뷰 이름과 뷰에 전달할 객체정보(데이터)를 리턴한 후 종료하고

이를 DispatcherServlet 의 View Resolver가 받아 결과를 출력해줄 View 객체를 구하고,

구한 View 객체를 이용하여 데이터를 클라이언트에게 보여준다.

이렇게 View Resolver는 데이터를 요청한 클라이언트에게 보여줄 View를 결정하고 리턴한 데이터를 화면에 보여준다.

 

View Resolver 종류

1. UrlBasedViewResolver

ViewResolver의 구현체로 특별한 매핑 정보 없이 의미상 View 이름을 URL로 사용

View 이름과 실제 리턴된 View 자원과의 이름이 같을때 사용한다.

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="prefix" value="/WEB-INF/view/" />
    <property name="suffix" value=".jsp" />
</bean>

 

사용자에게 보여줄 view의 경로는 prefix와 파일 확장자인 suffix를 지정한다.

만약 controller에서 넘겨준 modelAndView 값의 view 이름이 "hello" 일 경우 "/WEB-INF/view/hello.jsp"를 찾아 화면에 보여준다.

 

2. InternalResourceViewResolver

웹 어플리케이션의 WAR 파일 내에 포함된 뷰 템플릿을 찾는다.

뷰 템플릿의 경로는 prefix와 파일 확자자인 suffix를 지정한다.

주로 JSP를 사용할 때 쓰이는 뷰 리졸버이다.

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/view/" />
    <property name="suffix" value=".jsp" />
</bean>

 

3. ResourceBundleViewResolver

각 컨트롤러마다 뷰가 달라질 수 있을때 사용하는 뷰 리졸버

ResourceBundleViewResolver 를 사용하면

classpath: 에 "bean의 property name이 basename으로 설정된 value명.properties" 된 파일명에서 뷰 이름과 매핑된

뷰를 선택한다.

<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <property name="basename" value="spring-views" />
    <property name="order" value="0" />
</bean>

 

- spring-views.properties

hello.(class)=org.springframework.web.servlet.view.JstlView
hello.url=/WEB-INF/views/list.jsp

컨트롤러의 modelAndView 의 view 이름이 "hello" 일 경우 설정된 값으로 뷰를 보여준다.

반응형

'Java > Spring' 카테고리의 다른 글

싱글톤 패턴(Singleton)  (0) 2022.04.27
Dynamic Web Project - Tiles Template 추가  (0) 2022.04.27
Spring Filter  (0) 2022.04.27
Dynamic Web Project 만들기 1 - 프로젝트 생성  (0) 2022.04.26
메이븐(Maven)과 그래들(Gradle)  (0) 2022.04.25
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.