Pra*_*thu 7 java jsp thymeleaf spring-boot spring-thymeleaf
我可以访问 templates 文件夹下的文件,但无法访问 jsp 文件。如果我删除 thymeleaf 依赖项,我就可以访问 jsp 文件,但我想使用 spring boot 访问 thymeleaf html 文件和 jsp 文件。
以下是我在 application.properties 和 pom.xml 中的配置
Spring 视图解析器设置
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
Run Code Online (Sandbox Code Playgroud)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "todo-form", template might not exist or might not be accessible by any of the configured Template Resolvers spring
Run Code Online (Sandbox Code Playgroud)
将以下代码放入@configuration类中。我现在可以访问 jsp 和 html 文件。
@Autowired
WebApplicationContext webApplicationContext;
@Bean
public SpringResourceTemplateResolver thymeleafTemplateResolver(){
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(webApplicationContext);
templateResolver.setOrder(9);
templateResolver.setPrefix("/WEB-INF/views/");
templateResolver.setSuffix("");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine springTemplateEngine= new SpringTemplateEngine();
springTemplateEngine.setTemplateResolver(thymeleafTemplateResolver());
springTemplateEngine.setEnableSpringELCompiler(true);
return springTemplateEngine;
}
@Bean
public ThymeleafViewResolver thymeleafViewResolver(){
final ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setViewNames(new String[] {"*.html"});
viewResolver.setExcludedViewNames(new String[] {"*.jsp"});
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
return viewResolver;
}
@Bean
public InternalResourceViewResolver jspViewResolver(){
final InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setOrder(10);
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix("");
viewResolver.setViewNames("*.jsp");
return viewResolver;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3076 次 |
| 最近记录: |