关于Thymeleaf无法取值问题
SpringBoot2.7以前的版本在获取model中数据的时候不需要注释,2.7以后的版本需要加注释,它无法直接取存在model中的数据,不加注释的时候会爆红但是可以正常使用,这个注释的含义就是指定数据类型(数据就是注释中的id),到这里我好像抓住了什么,所以我查看了一下2.7和2.6两个版本,在2.6版本中,获取model中的数据时会有提示,提示的数据后面也有数据对应的数据类型,而2.7版本需要添加以下注释标明该数据的类型,所以我大胆猜测一下:2.7以上的版本可能无法解析model中的数据,所以需要添加注释(我也不确定是否正确,只是我的猜测,毕竟我在网上也没找到答案)
验证一下我的猜测:我通过model添加"Hello,SpringBoot-thymeleaf"到message中,再到html页面通过thymeleaf模板取出message显示在网页上,观察是否能取出message?
model.addAttribute("message", "Hello,SpringBoot-thymeleaf");
目前我降了版本,为2.6.9版本,而且我没有加注释,它可以解析后台model中的数据,清晰的看到message后面的类型

我调回到2.7.1版本,也没有加注释,就会报错,报的错是:无法解析message,但是你到网页上看也是正常显示的

在2.7版本,只要html页面添加了以下注释,指定了id和数据类型,就可以直接使用该对象,哪怕后台没有这个数据也可以获取
<!--/*@thymesVar id="abc" type=""*/-->
<h2 th:text="${abc}"></h2>
注释中没有数据类型,取值的时候也没有数据类型

2.7版本只是无法取值,通过Controller控制分发还是可以的,这个是没问题的,可以转发。当然,重定向可不可以还需实验
<!--这个 /a 是Controller中写好的接口-->
<h1><a th:href="@{/a}">跳转a页面</a></h1>
@RequestMapping("/a")
public String test2(){
return "a";
}
针对无法取值这个问题,有两个解决方案:
(虽然降版本一劳永逸,但是SpringBoot停止了维护2.6版本,而且我们也应该与时俱进,还是要习惯新版本的编程习惯
毕竟这种方式也有好处,可以更好指定值类型,只是每一次取值的时候都加一行注释来指定类型显得很不爽)
- 第一是按照提示,添加注释,注释中id就是model中的 attributeName
- 第二就是降版本,降到2.6版本,这个问题就迎刃而解(我个人不太推荐关闭thymeleaf的错误提示,网上大多都是推荐关闭错误提示)
欢迎大家发表意见,一起讨论共同进步!
关于Thymeleaf无法取值问题的更多相关文章
- Thymeleaf Javascript 取值
<script th:inline="javascript"> var openid = /*[[${session.wxuser.openId}]]*/ </s ...
- Thymeleaf前后端传值 页面取值与js取值
参考: Thymeleaf前后端传值 页面取值与js取值 Thymeleaf 与 Javascript Thymeleaf教程 (十二) 标签内,js中使用表达式 目的: 后端通过Model传值到前端 ...
- 如何解决流程开发中SheetRadioButtonList页面取值问题
分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...
- jQuery radio的取值与赋值
取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...
- python通过函数改变变量取值
严格讲应该是"通过函数调用,改变引用对象".python中,要区分"变量名"和"对象" 如果是类的对象,是引用类型的,那么可以通过函数调用, ...
- jsf初学selectOneMenu 绑定与取值
jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...
- CYQ.Data 快速开发之UI(赋值、取值、绑定)原理
昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...
- EditText的inputType常用取值
最近经过实际试验,总结了InputType几个常用取值表示的含义: 1.none, text, textVisiblePassword: 无任何输入限制 2.textMultiLine: 允许多行输入 ...
- jquery select取值,赋值操作
select">jquery select取值,赋值操作 一.获取Select 获取select 选中的 text : $("#ddlRegType").find( ...
随机推荐
- VUE 日期组件(包括年选择)
封装vant 日期组件实现可以选择年份 <template> <div class="yearMonMain"> <div class="l ...
- php错误异常及其排错
错误和异常 错误 php程序自身的问题,一般是由非法的语法,环境问题导致 异常 一般是业务逻辑上出现的不合预期.与正常流程不同的状况,不是语法错误 错误异常继承关系 小括号表示php版本 php7下的 ...
- 一文看懂二层接口、三层接口、PVID及VLANIF
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 文章来源:朱仕耿个人博客 一位同事问了个关于二层和三层端口的概念及区分,以及关于VLANIF. ...
- MongoDB 常用运维实践总结
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 一.MongoDB 集群简介 MongoDB是一个基于分布式文件存储的数据库,其目的在于为WE ...
- 推荐一款数据mock框架,无需任何依赖,贼牛逼
fox-mock 是基于Java Agent实现的自测,联调Mock利器.能解决你的这些问题: 开发过程中,依赖了下游多个接口,想跑个单测都必须得等下游把服务部署好 联调过程中,下游某个接口出问题,阻 ...
- numpy学习笔记Ⅰ
一直被numpy和matplotlib困扰,打算好好学习一下,也是从自己的观点,学对自己帮助最大的部分 主要参考<https: www.runoob.com="" numpy ...
- FTP主动模式上传文件时返回"ftp: accept: Resource temporarily unavailable"
FTP主动模式上传文件时返回 Passive mode off ftp: accept: Resource temporarily unavailable 这个问题要从ftp的2种模式说起 PORT ...
- 通过Go实现AES加密和解密工具
本文包含如下两个内容: AES加密介绍及实现原理 Go实现AES加密和解密工具 AES加密介绍及实现原理 AES( advanced encryption standard)使用相同密钥进行加密和解密 ...
- 三大特性,多个场景,Serverless 应用引擎 SAE 全面升级
作者:营火 微服务能力大提升,更新增 Job.PHP 等场景,延展 Serverless 新边界 点击此处,获得阿里云 SAE 发布会直播 PPT! 企业的数字化随着互联网的普及发展越来越快,技术架构 ...
- OAuth2授权服务器Id Server一键生成配置原理
OAuth2客户端的配置参数非常多,虽然Id Server通过控制台可视化解决了创建OAuth2客户端的问题.但是如何进一步降低OAuth2的使用难度,把创建的OAuth2客户端转化为配置成为了刚需, ...