You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thymeleaf片段中动态引用Model带编号属性的实现问题

解决Thymeleaf动态获取Model属性的问题

你遇到的核心问题是:之前的写法只是拼接出了test_1这类变量名字符串,但没有把它作为Model中的变量去读取实际值。这里给你两种可行的解决方法:

方法一:预处理+变量表达式

利用Thymeleaf的预处理(__...__)先拼接出完整的变量名,再通过${}获取对应属性值,写法如下:

th:text="${__${'test_' + number}__}"

原理是:预处理会先执行__${'test_' + number}__,把它解析成test_1(假设number的值是1),然后外层的${}就会去Model中查找名为test_1的属性并取出值。

方法二:使用#vars对象直接获取

Thymeleaf提供了#vars对象,可以通过键名直接获取Model中的属性,写法更直观:

th:text="${#vars.get('test_' + number)}"

这种方式不需要预处理,直接拼接出属性键名后,调用get()方法就能拿到对应的值。

为什么之前的写法无效?

  • 第一种th:with="i='test_' +${number}" th:text="${i}":这里的i只是存储了字符串test_1,不是对Model变量的引用,所以输出的就是字符串本身。
  • 第二种th:text="'test_' + ${number}":本质是字符串拼接操作,没有触发Model属性的读取逻辑。
  • 第三种th:text="${'test_'+__${number}__}":预处理的范围不对,只处理了${number}部分,最终还是在拼接字符串,没有形成有效的变量引用。

内容的提问来源于stack exchange,提问作者larjae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:27:49