MVC 구성은 뷰 resolver의 등록을 단순화합니다.
다음 Java 구성 예에서는 JSP 및 Jackson을 JSON 렌더링의 기본 View
로 사용하여 콘텐츠 협상 View
resolution을 구성합니다.
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.enableContentNegotiation(new MappingJackson2JsonView());
registry.jsp();
}
}
다음 예에서는 XML에서 동일한 구성을 달성하는 방법을 보여줍니다.
<mvc:view-resolvers>
<mvc:content-negotiation>
<mvc:default-views>
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
</mvc:default-views>
</mvc:content-negotiation>
<mvc:jsp/>
</mvc:view-resolvers>
그러나 FreeMarker, Groovy Markup 및 스크립트 템플릿에도 기본 뷰 기술의 구성이 필요합니다. MVC 네임스페이스는 전용 요소를 제공합니다. 다음 예는 FreeMarker에서 작동합니다.
<mvc:view-resolvers>
<mvc:content-negotiation>
<mvc:default-views>
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
</mvc:default-views>
</mvc:content-negotiation>
<mvc:freemarker cache="false"/>
</mvc:view-resolvers>
<mvc:freemarker-configurer>
<mvc:template-loader-path location="/freemarker"/>
</mvc:freemarker-configurer>
Java 구성에서는 다음 예제와 같이 해당 Configurer
빈을 추가할 수 있습니다.
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.enableContentNegotiation(new MappingJackson2JsonView());
registry.freeMarker().cache(false);
}
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setTemplateLoaderPath("/freemarker");
return configurer;
}
}