실행할 뷰를 찾는 일

페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 컴보넌트를 찾는 역할

 

종류?

1.ResourcBundleViewResolver

 *.properties 에서 뷰이름에 해당하는 url 을 찾는다.

   ex) .properties

home.index=org.springframework.web.servlet.view.JstlView
home.index.url=/WEB-INF/jsp/home.jsp

java

@Bean
public ViewResolver resourceBundleViewResolver() {
    ResourceBundleViewResolver resolver = new ResourceBundleViewResolver();
    resolver.setBasename("views");
    resolver.setOrder(1);
    return resolver;
}

 

2.InternalResourceViewResolver

Spring Framework에서 매우 일반적으로 사용되는 뷰 리졸버(View Resolver)입니다. 이 뷰 리졸버는 논리적인 뷰 이름을 실제 JSP 또는 다른 웹 리소스 경로로 변환해주는 역할을 합니다.

ex)xml

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

java

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

설정에서 prefix와 suffix 속성은 뷰 이름 앞과 뒤에 추가될 문자열을 정의합니다. 예를 들어, 컨트롤러에서 "home"이라는 뷰 이름을 반환하면 InternalResourceViewResolver는 이를 /WEB-INF/views/home.jsp로 변환합니다.

 

ResourcBundleViewResolver,  InternalResourceViewResolver  차이점

뷰리졸브는 애플리케이션의 요구 사항에 따라 결정됩니다.

 

ResourceBundleViewResolver

장점

  • 설정 파일에서 명시적으로 뷰 클래스와 뷰 위치를 매핑하므로, 보다 구조화된 관리가 가능합니다.
  • 다국어(i18n) 지원 등에서 유용합니다.
  • 뷰에 대한 메타데이터를 쉽게 관리할 수 있습니다.

단점

  • .properties 파일을 따로 유지해야 하므로, 추가적인 관리 작업이 필요할 수 있습니다.
  • 각 뷰에 대한 설정이 별도로 존재하므로, 설정이 길어질 수 있습니다.


InternalResourceViewResolver

장점

  • 간단하고 빠른 설정이 가능합니다. 일반적인 경우에는 이 리졸버만으로 충분합니다.
  • 개발자가 명시적으로 매핑을 관리할 필요가 없어, 관리 부담이 적습니다

단점

  • 명시적인 뷰 매핑이 없으므로, 복잡한 뷰 로직을 처리하기 어렵습니다.
  • 다국어 지원 등의 복잡한 케이스에서는 덜 유연할 수 있습니다.


https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com

 

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

argument resolver란?  (0) 2023.09.03
HTTP 메시지 컨버터란?  (0) 2023.09.03
HTTP 응답 방식  (0) 2023.09.02
@RequestBody , @ModelAttribute 파라미터 어노테이션 사용방법  (0) 2023.07.05
spring 구조  (0) 2023.07.03

+ Recent posts