org.thymeleaf.exceptions.TemplateInputException: Error resolving template报错

出现的错误就是标题所写的:org.thymeleaf.exceptions.TemplateInputException: Error resolving template 报错,也就是下面这代码

   @GetMapping("/")
   public String index() {
       return "index";
   }

一开始出这个错误,我立马百度了一下,然后看到了下面几种解答

1.在controller层请求处理完了返回时,没有使用@RestController或@ResponseBody而返回了非json格式

我用了这个办法,确实解决了,没有报错,但是跳转的页面显示就是index这字符,根本没跳页面,所以我又查了这个问题,其他博客有人回答了,@Restcontroller给页面返回的是字符串类型而不是json类型,必须将@Restcontroller改回@controlle,然后改回来又报错。。。当初真的绝望,死循环!!!然后下面几种方法对我都没用,但是可能对你们有用,我也一起分享一下!


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>

4.资源文件的路径被修改,如果你其他的请求都正常返回则可忽略这条
解决:在pom.xml文件的中加入

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

以上三种方法对我没啥用

我的问题其实好像是因为缓存问题,因为前面的都出了问题,当时花了2个小时,然后就是重启了一下IDEA,结果莫名奇妙的就好了,所以如果大家也遇到这种情况,上面方法都没用的时候,不如重启一下IDEA或许就好了,也可以清一下缓存!清缓存的地方:

posted @ 2020-09-20 20:02  AyaneShindou  阅读(2612)  评论(0编辑  收藏  举报