SprigBoot 默认整合Tymeleaf 时遇到的一个致命错误: Could not parse....

在SpringBoot项目中集成Thymeleaf模板引擎时遇到错误,导致模板引擎无法解析HTML5中的Model。错误源于SpringBoot默认配置的Thymeleaf版本与HTML5版本不匹配。解决方法包括修改SpringBoot默认的HTML版本或手动指定Thymeleaf版本以支持HTML5中的Model。通过调整配置,成功解决了模板引擎在HTML5环境下无法解析Model的问题。
摘要由CSDN通过智能技术生成

在整合SpringBoot 和Tymeleaf 模板引擎时遇到知名错误

先来看错误:

ERROR 12788 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 
[Request processing failed; nested exception is 
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "

来看错误:

项目正常启动后, 调用Controller , 传入Model 对象, 添加设置 addAttribute() 域后, 在 Thymeleaf 里面使用标签来进行解析就会产生致命错误: Could not parse XXXX , 然后控制台和网页都会打印错误: 提示 ${变量名称} 无法被解析, 如果不在标签库里面使用解析, 是不会出现这种错误的

来看解决过程:

小编遇到此错误后, 显示进行了个人配置检查, 包括依赖, HTML 页面引入依赖, Contoller 的代码等, 发现代码无问题, , 直接将问题进行百度, ---->结果无果 ,
然后重新进行新建项目, 还是同样的错误, 一系列操作没有结果后, 选择直接看SpringBoot 下面的日志信息发现了2个警告
在这里插入图片描述
警告说: 模板引擎Thymeleaf 不支持在 HTML5 里面使用Model, 这不是说模板引擎或HTML5不支持 Model ,

问题原因:

究其原因, 是因为, SpringBoot 的的版本仲裁机制,. 默认对Thymeleaf 的版本控制, 和SpringBoot 对HTML 的版本控制不对应, 默认的模板引擎版本不支持 在HTML5 中使用Model , 然而SpringBoot 默认使用的是HTML5 页面, 这也许是SpringBoot 的一个失误之处, 将2个冲突的版本设置为默认支持了,

解决方法:

将SpringBoot 的默认HTML 版本从HTML5 改为 HTML
在这里插入图片描述
但是这样不符合生产环境: 我们需要的是HTML 5 ,
还有办法是将 Thymeleaf 的版本进行自我控制, 自定义到能在HTML5 中支持Model 的版本
在这里插入图片描述
完美解决问题: 开心的运行吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值