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或许就好了,也可以清一下缓存!清缓存的地方: