View Resolver는 스프링 MVC에서 사용되는 핵심 기능 중 하나로, 컨트롤러가 반환한 뷰 이름을 실제 뷰 객체로 매핑하는 역할을 합니다

즉, View Resolver는 뷰의 위치를 찾아 컨트롤러에게 반환해줍니다

 

동작 방식

View Resolver는 설정된 규칙에 따라 뷰의 위치를 찾습니다

스프링에서는 다양한 View Resolver 구현체를 제공하며, 가장 일반적으로 사용되는 것은 다음과 같습니다

  • InternalResourceViewResolver
    내부 자원을 이용하여 JSP나 HTML 파일을 처리합니다
    일반적으로 웹 애플리케이션에서 사용되는 기본적인 View Resolver입니다
  • UrlBasedViewResolver
    URL 기반의 뷰를 처리하는 Resolver입니다
    주로 리다이렉션과 같은 기능을 구현할 때 사용합니다
  • XmlViewResolver
    XML 파일을 이용하여 뷰를 처리하는 Resolver입니다
    XML 파일에 정의된 뷰를 사용하여 동적으로 뷰를 생성할 수 있습니다
  • JsonViewResolver
    JSON 형식의 뷰를 처리를 Resolver입니다
    주로 AJAX 요청에 대한 응답으로 JSON 데이터를 반환할 때 사용됩니다
  • ContentNegotiatingViewResolver
    Apache Tiles와 같은 타일 시스템을 사용하여 뷰를 처리하는 Resolver입니다
    여러 개의 작은 타일로 구성된 화면을 동적으로 조합할 수 있습니다

이러한 View Resolver는 스프링의 설정 파일에 정의되어 있으며, 설정된 우선순위에 따라 뷰를 찾습니다

설정 방법

XML 설정 파일을 이용한 설정

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

Java Config를 이용한 설정

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

장점

  • 유연한 설정
    View Resolver를 사용하면 뷰의 위치나 종류를 유연하게 변경할 수 있습니다
    설정 파일을 수정함으로써 쉽게 뷰를 변경할 수 있습니다
  • 간편한 사용
    View Resolver를 설정하면 컨트롤러에서는 뷰의 위치나 종류를 명시적으로 지정할 필요가 없습니다
    이를 통해 코드가 간결해지고 유지보수가 용이해집니다

 

+ Recent posts