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

Thymeleaf中如何在th:each循环内用动态变量替换属性名

解决Thymeleaf动态拼接对象属性名的问题

要实现把images.foo0bar里的0替换为外层循环的索引值,你不能直接用${images.foo + index + bar}这种写法,得用Thymeleaf支持的动态属性访问方式结合字符串拼接来做,具体实现如下:

  1. 外层循环的index是Thymeleaf的循环状态变量,要获取从0开始的索引值用index.count;如果需要从1开始的索引,就用index.index。
  2. 动态访问images对象的属性时,改用方括号[]语法,把拼接好的属性名字符串作为参数传入。

修改后的完整代码:

<th:block th:each="someData, index : ${someData.from.somewhere}">
    <th:block th:each="image : ${images['foo' + index.count + 'bar']}">
        <img th:src="${image}"/>
    </th:block>
    <hr/>
</th:block>

关键说明

  • 当index.count为0时,'foo' + index.count + 'bar'会拼接成foo0bar,和你原来的属性名完全匹配;索引为1时则拼接为foo1bar,以此类推。
  • 方括号[]是Thymeleaf中动态访问对象属性的标准写法,支持通过字符串表达式指定属性名,正好适配你这种动态拼接属性名的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:10:26