照着视频编写程序使用Thymeleaf出现模板解析错误该如何解决?
Thymeleaf模板解析报错原因及解决方案
错误根因
这个org.thymeleaf.exceptions.TemplateInputException异常核心原因是Thymeleaf引擎无法正确解析resources/templates路径下的home.html模板文件,常见触发原因如下:
- 模板文件语法错误:HTML标签未闭合、Thymeleaf属性
th:*拼写错误、属性值格式不符合要求(比如表达式写错、引号不配对) - 模板引用资源错误:模板中引用的片段、静态资源路径错误,或者引入的公共片段不存在
- 后端传值不匹配:Controller层往Model中存入的变量名和模板中使用
${}取值的变量名不一致,或者变量为null时没有做非空判断直接调用方法/属性 - 模板文件路径/名称错误:
home.html文件放错了目录,或者文件名大小写拼写和Controller中返回的视图名不一致(Linux系统对大小写敏感会触发报错) - Thymeleaf依赖缺失或版本不兼容:项目配置中Thymeleaf starter依赖缺失,或者版本和当前SpringBoot版本不匹配
对应解决方案
- 检查
home.html的语法正确性
确认所有HTML标签都正确闭合,所有th:开头的属性拼写正确,Thymeleaf表达式${}、*{}、@{}等格式正确,引号没有缺失。 - 检查变量传值匹配逻辑
检查Controller对应接口的Model写入逻辑,确认存入的变量名和模板中使用的变量名完全一致,对可能为null的变量使用${变量名?.属性名}的安全调用写法,避免空指针触发解析失败。 - 验证文件路径和名称
确认home.html放在src/main/resources/templates目录下,文件名和Controller返回的视图字符串大小写完全一致。 - 检查依赖配置
如果是SpringBoot项目,确认pom.xml中已引入正确的Thymeleaf启动器:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
无需手动指定版本,和SpringBoot父工程版本保持一致即可避免版本兼容问题。
5. 开启详细报错日志定位具体问题
在application.properties/yml中添加配置开启Thymeleaf的详细错误日志,就能直接看到模板具体哪一行出了问题:
spring.thymeleaf.mode=HTML spring.thymeleaf.cache=false logging.level.org.thymeleaf=DEBUG
内容的提问来源于stack exchange,提问作者John J
相关产品推荐
相关产品推荐

