【避坑指南】Spring Boot Thymeleaf 报错:Whitelabel Error Page

如果,你选择了Spring Boot + Thymeleaf 这对组合。恭喜你,你进入了一个大坑!不,不能称之坑,就是万丈深渊。

新增、编辑、修改、保存同一个页面,有参数时正常访问,没参数报个错给你看看,Thymeleaf的傲娇真不是盖的!

先上错误代码,这是前端报错的:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Nov 29 22:27:35 CST 2018

There was an unexpected error (type=Internal Server Error, status=500).

An error happened during template parsing (template: "class path resource [templates/personnelClassification/edit.html]")

这是IDEA控制台抛出的:

[THYMELEAF][http-nio-8080-exec-5] Exception processing template "personnelClassification/edit": An error happened during template parsing (template: "class path resource [templates/personnelClassification/edit.html]")

org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/personnelClassification/edit.html]")

当你在网上穷搜到抓狂的时候,一般给出的答案是:

1、配置文件缺少;

2、Application文件没有放在最顶级目录上;

3、@RequestMapping路径不对导致找不到;

但是,我看了自己的项目所有的都是正常的,重新检查检查了前端页面,发现th:value="${bean.personnelClassificationId}",通过Thymeleaf标签赋值时,编辑时有参数时是正常的,新增时没参数就会报错。所以,我感觉这和参数的有无有直接关系。

继续搜索,发现真有一部分发现这个问题,有先驱者给出了解决办法:th:value="${bean?.personnelClassificationId}",在传入参数后面加上一个英文问号,形成类似于三目运算,如果bean不为空,则进行取值。当参数取值层级较多时,也可以是result?.bean?.id这种。

项目添加问号后,如果报错也不用担心,保持Thymeleaf为最新版本就行了。我目前使用的是:2.1.0.RELEASE版本,更多新版本可以在mvnrepository.com内搜索。

你可能感兴趣的:(【避坑指南】Spring Boot Thymeleaf 报错:Whitelabel Error Page)