【踩坑笔记】报错org.thymeleaf.exceptions.TemplateInputException: Error resolving template

最近在使用springboot+thymeleaf写程序的时候,一直报错org.thymeleaf.exceptions.TemplateInputException: Error resolving template硬是搞了整整一天才解决,因为自己踩过坑了,所以,在这里,本人给出目前我所搜集到的所有报这个错的情况的解决方案。

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "xxx/xxx", template might not exist or might not be accessible by any of the configured Template Resolvers
	at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:865) ~[thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:608) ~[thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1087) [thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1061) [thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
  1. 在controller层请求处理完了返回时,没有使用@RestController或@ResponseBody而返回了非json格式
    这种情况下返回的数据thymeleaf模板无法解析,直接报错,本人正式因为这个原因才报错。

    解决方案:可以将@Controller换成@RestController,不过需要注意有没有其他的方法返回了html页面,会导致返回的不是页面而是字符串;最好的方法就是在你所请求的方法上面加一个@ResponseBody即可。

  2. 在你的controller层对应的方法返回html路径及名称时,在前面多加了一个/ 。

    例如return "/index",正式这个/导致报错的,解决:去掉返回前面的/即可,例如return "/index" 。

  3. 在使用springboot的过程中,如果使用thymeleaf作为模板文件,则要求HTML格式必须为严格的html5格式,必须有结束标签,否则会报错。

    解决办法如下:

    在application.yml中添加以下配置

spring.thymeleaf.content-type: text/html 
spring.thymeleaf.cache: false 
spring.thymeleaf.mode: LEGACYHTML5

​ 再在pom.xml 添加以下依赖

<dependency> 
<groupId>net.sourceforge.nekohtml</groupId> 
<artifactId>nekohtml</artifactId> 
<version>1.9.22</version> 
</dependency> 
  1. 资源文件的路径被修改,如果你其他的请求都正常返回则可忽略这条。

    解决:在pom.xml文件的中加入

<resource>
 <directory>src/main/resources</directory>
</resource>

目前本人就遇到上面四种报错原因,希望可以帮助到你。
————————————————
版权声明:本文为CSDN博主「林晓风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Lin_xiaofeng/article/details/79122053

posted @ 2020-07-07 23:59  唐啊唐囧囧  阅读(3331)  评论(3编辑  收藏  举报