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