81,116
社区成员
发帖
与我相关
我的任务
分享
然后定义一个配置类,
controller如下图
好了,搞定,试试吧
说白了就是设置viewNames的问题,至于那些order啥的完全可以不用的,当然还有其他方式用order的,你自己看看源码吧
注意红框标出的部分,表示如果没有某某类,就会注入IOC容器,而且都设置有相应的order属性,ContentNegotiatingViewResolver的优先级最高,我们先要阻止它注入IOC(上面说了,会去选择最优视图getBestView),这个注解@ConditionalOnMissingBean(name = "viewResolver", value = ContentNegotiatingViewResolver.class)意思是如果有一个viewResolver名称的bean,它就不生效,那就配只一个这个bean就好了嘛
然后就是设置各个视图的order的问题了
// jsp视图解析器
@Bean
public InternalResourceViewResolver defaultViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix(this.mvcProperties.getView().getPrefix());
resolver.setSuffix(this.mvcProperties.getView().getSuffix());
resolver.setOrder(0);
return resolver;
}
thymeleaf视图解析器配置在ThymeleafAutoConfiguration这个类中
freemarker视图解析器配置在FreeMarkerServletWebConfiguration类
剩下的就自己搞了哦
ps:上面全部是自己的猜测哦,没有实际验证哦,见谅

