Thymeleaf th:each 用 th:if 过滤
Posted
技术标签:
【中文标题】Thymeleaf th:each 用 th:if 过滤【英文标题】:Thymeleaf th:each filtered with th:if 【发布时间】:2015-06-17 18:20:02 【问题描述】:我需要为components
数组中的每个component
迭代和创建<span>
元素,该数组具有name
的'MATERIAL'
我的代码如下
<span th:each="component : $body.components"
th:object="$component">
<button th:if="*name == 'MATERIAL'"
th:text="*title"></button>
</span>
如果name
不等于'MATERIAL'
,则此代码运行良好,直到产生一组空的<span>
元素。我不希望创建这个空的 <span>
元素。
我也尝试了以下
<span th:each="component : $body.components"
th:object="$component"
th:if="*name == 'MATERIAL'">
<button th:text="*title"></button>
</span>
这会导致空输出并且根本不打印任何内容。有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:您应该使用点 (.) 符号直接引用迭代项属性,而不是在 html 元素中通过 SpEL 表达式评估 (*name
):
<span th:each="component : $body.components"
th:object="$component"
th:if="$component.name == 'MATERIAL'">
<button th:text="*title"></button>
</span>
【讨论】:
谢谢。这解决了问题。以上是关于Thymeleaf th:each 用 th:if 过滤的主要内容,如果未能解决你的问题,请参考以下文章