1
我有一个现有的Spring Boot应用程序,它为视图使用JSP。我希望逐步将视图技术转移到Thymeleaf。为JSP和Thymeleaf设置两个模板解析器
的JSP视图解析器设置在application.properties:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
的JSP被位于:
src/main/resources/META-INF/resources/WEB-INF/views/
是否有可能增加一个第二视图旋转变压器为Thymeleaf,用于视图不存在为JSP?以便在请求视图时应用程序尝试两个视图解析器。
编辑
我也曾尝试使用下面的配置,没有成功:
@Bean
public InternalResourceViewResolver jspViewResolver() {
final InternalResourceViewResolver vr = new InternalResourceViewResolver();
vr.setPrefix("/META-INF/resources/WEB-INF/views/");
vr.setSuffix(".jsp");
vr.setViewClass(JstlView.class);
vr.setOrder(1);
return vr;
}
@Bean
public TemplateResolver templateResolver() {
final ServletContextTemplateResolver tr = new ServletContextTemplateResolver();
tr.setPrefix("templates/th/");
tr.setSuffix(".html");
tr.setTemplateMode("HTML5");
return tr;
}
@Bean
public SpringTemplateEngine templateEngine() {
final SpringTemplateEngine te = new SpringTemplateEngine();
// te.addTemplateResolver(jspViewResolver());
te.setTemplateResolver(templateResolver());
te.setMessageSource(databaseMessageSource);
return te;
}
@Bean
public ViewResolver viewResolver() {
final ThymeleafViewResolver vr = new ThymeleafViewResolver();
vr.setTemplateEngine(templateEngine());
vr.setOrder(2);
return vr;
}
这就引出了另一个有用的答案“org.thymeleaf.exceptions.TemplateInputException:错误解决模板 “家”,范本可能不存在或可能无法被配置的任何模板解析器访问“,就好像它没有尝试第二个选项,它是jsp视图解析器,这将能够解析”home“。我试着在你的例子中设置视图解析器的顺序,没有任何影响。 – yglodt
@yglodt您是否在两个解析器上为您的特定情况配置了前缀和后缀? – marknorkin
检查我更新的问题。 – yglodt