spring boot 的thymeleaf真的是那么随便就可以用的吗?弄不好你就会遇到很头疼的事
spring boot 默认推荐使用的模板引擎是thymeleaf而非JSP。网上很多都是告诉你,怎么快速访问到thymeleaf,但是真的就那么简单吗?
你或许会遇到如下的问题:
前端给的静态HTML可以直接访问,为啥我直接放到项目中就会报错呢?访问不到呢?
错误如下:
我们断点跟踪: 发现在DispatcherServlet中有异常信息。信息实说,在aa.html中的第6行第三列出错了。
现在我们回到aa.html中查看第6行第3列:
我们发现,就只是head标签。这个html页面直接访问是不会报错的。为什么放到项目里面就会报错呢?
最后在一篇文章中,看到了如下:
你可能会发现在默认配置下,thymeleaf对.html的内容要求很严格,比如<meta charset="UTF-8" />,
如果少最后的标签封闭符号/,就会报错而转到错误页。也比如你在使用Vue.js这样的库,然后有<div v-cloak></div>这样的html代码,
也会被thymeleaf认为不符合要求而抛出错误。
果断将配置文件中
spring.thymeleaf.mode=HTML5替换掉
替换成如下:
spring.thymeleaf.mode = LEGACYHTML5
spring.thymeleaf.mode = LEGACYHTML5
spring.thymeleaf.mode的默认值是HTML5,其实是一个很严格的检查,改为LEGACYHTML5可以得到一个可能更友好亲切的格式要求。
需要注意的是,LEGACYHTML5需要搭配一个额外的库NekoHTML才可用。
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
最后重启项目就可以感受到不那么严格的thymeleaf了。
我们重启项目,重新访问:
以下是凯哥配置文件信息:
相关文章
- 为什么工业网关需要做防尘防水
- 学生管理系统
- 九宫幻方
- Unity学习笔记-脚本
- P1162-填涂颜色
- [学习笔记]三维数学(1)-向量
- [学习笔记]三维数学(2)-三角函数
- [学习笔记]三维数学(3)-向量运算
- [学习笔记]三维数学(4)-物体的旋转
- 又拍云如何自定义操作员密码而非随机生成
- 正则表达式入门
- [学习笔记]DarkSouls复刻(1)-角色控制器
- [学习笔记]DarkSouls复刻(2)-角色控制器
- P1032-字串变换
- [教程]字符动画制作
- P1056-排座椅
- P1019-单词接龙
- Unity脚本基础练习
- 腾讯云大数据获“年度金融科技创新之星”,新一代数据架构首次公布
- 学长学姐茶话会 | 2023腾讯犀牛鸟精英人才计划“项目答疑会”