对于 Thymeleaf 中的每个运算符
Posted
技术标签:
【中文标题】对于 Thymeleaf 中的每个运算符【英文标题】:For each operator in Thymeleaf 【发布时间】:2016-08-13 04:22:28 【问题描述】:我在Thymeleaf
模板中找不到用于构建简单for-each-loop 的语法。
我对 th:each=""
属性不满意,因为它复制了它所在的标签。
我正在寻找的是这样的:
<th:foreach th:each="...">
...block to be repeated...
</th>
Tapestry
中的 <c:forEach items="..." var="...">
或 <t:loop source="..." value="...">
是什么类似物。有什么类似的吗?
【问题讨论】:
【参考方案1】:按照 Thymeleaf 指南中的说明使用 th:block
th:block
只是一个属性容器,它允许模板开发人员指定他们想要的任何属性。 Thymeleaf 将执行这些属性,然后简单地使块消失得无影无踪。
因此它可能很有用,例如,在创建每个元素需要多个 <tr>
的迭代表时:
<table>
<th:block th:each="user : $users">
<tr>
<td th:text="$user.login">...</td>
<td th:text="$user.name">...</td>
</tr>
<tr>
<td colspan="2" th:text="$user.address">...</td>
</tr>
</th:block>
</table>
【讨论】:
我看不出与 my implementation 的区别...知道为什么它不适合我吗?【参考方案2】:th:block
解决方案绝对是最好的解决方案,但您也可以尝试使用th:remove="tag"
来删除包含标签:
<table>
<tbody th:each="user : $users" th:remove="tag">
<tr>
<td th:text="$user.login">...</td>
<td th:text="$user.name">...</td>
</tr>
<tr>
<td colspan="2" th:text="$user.address">...</td>
</tr>
</tbody>
</table>
这种方法的好处是您还可以将 Thymeleaf 表达式传递给th:remove
,以便仅有条件地删除标签,例如如果您只想将一些用户包含在<tbody>
中,并且还有其他有趣的用途。
Here 是th:remove
的文档。
【讨论】:
th:remove
是我猜到的,但还没有尝试过 :-) 非常感谢。
@ekemchitsiga 是第一个,所以他的回答将被接受。也给你 +1 :)以上是关于对于 Thymeleaf 中的每个运算符的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot——Thymeleaf中的四种字面量(文本数字布尔null)字符串拼接运算符
无法从 Thymeleaf 中的模型对象设置默认 CSS 变量
使用默认值声明 Thymeleaf 变量后如何对其进行算术运算?