Develop/JAVA

Controller 의 리턴값으로 ModelAndView("jsonView") 사용할 때 해야하는 설정

issuemaker99 2024. 6. 17. 23:20
728x90

● 오류 내용


Error resolving template [jsonView], template might not exist or might not be accessible by any of the configured Template Resolvers

ModelAndView mv = new ModelAndView("jsonView");

Controller 리턴 값으로 ModelAndView("jsonView") 사용할 때 해줘야 하는 설정이 있습니다.

아래 두가지 중에 한가지만 설정하시면 됩니다. 현재 사용하는 프레임워크 설정에 맞춰서 추가해 주세요

 

1. @Configuration


@Configuration란? 

  • Spring 에서 Bean 등록할 수 있는 어노테이션 중 하나 입니다.
  • @Configuration 어노테이션을 사용하면, 하나 이상의 @Bean이 붙은 메서드가 포함된 빈 설정용 클래스를 만들 수 있습니다.
  • 스프링 컨테이너는 @Bean이 붙은 메서드를 통해 빈을 생성한다.

아래와 같은 @Configuration 자바파일을 생성한다.

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

@Configuration
public class WebConfig implements WebMvcConfigurer {
       @Bean
       MappingJackson2JsonView jsonView() {
              return new MappingJackson2JsonView();
       }
}

 

 

2. DispatcherServlet


DispatcherServlet란?

  • Servlet 의 일종 입니다.
  • 서블릿 컨테이너 맨 앞에서 모든 요청을 받아 적절하게 처리할 컨트롤러를 찾아서 정해주는 역할을 합니다.

dispatcher-servlet.xml 파일에 아래 내용을 추가 합니다.

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> 
       <property name="order" value="0"/> 
</bean>
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
       <property name="contentType" value="application/json;charset=UTF-8"></property>
</bean>

 

LIST