thymeleaf js 根据元素下标取值?

[[${data.getConsumeUp().get( ? ).get(region)}]] 这个? 可以使用for循环替换吗

Thymeleaf的表达式可以在方括号中包含一个字符串或者一个表达式,但并不支持直接使用循环变量来在方括号中取值。

如果你需要根据元素下标取值,可以使用Thymeleaf中的内联 #numbers 序列,定义序列长度并使用 *{#numbers.sequence(0, length - 1)} 来生成下标序列,然后使用 $序号 来获取对应元素的值,如下所示:

Copy code
<tr th:each="index : ${#numbers.sequence(0, data.getConsumeUp().size() - 1)}">
<td th:text="${data.getConsumeUp().get(index).get(region)}"></td>
</tr>
这里将元素下标的序列放在了 th:each 指令中循环遍历,在内部指令中使用 $ 符号获取对应下标的元素值。

例如,如果 data.getConsumeUp() 返回一个类似List<ConsumeUp>的对象,则每次循环遍历时 $index 的值分别是 0, 1, 2, ..., n,然后使用 data.getConsumeUp().get(index).get(region) 获取每个元素的属性值。

这样可以避免使用 ? 占位符,也能够实现根据元素下标取值的功能。需要注意的是, #numbers.sequence() 中的长度参数应该为 data.getConsumeUp().size() - 1,以保证取到的下标序列与元素序列相对应。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜