百里香 th:each 用 th:if 过滤
Thymeleaf th:each filtered with th:if
我需要为 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>
这会导致输出为空并且根本不打印任何内容。有人可以帮我解决这个问题吗?
您应该直接使用点 (.) 符号引用迭代项 属性,而不是在内部通过 SpEL 表达式求值 (*{name}
)你的 html 元素:
<span th:each="component : ${body.components}"
th:object="${component}"
th:if="${component.name} == 'MATERIAL'">
<button th:text="*{title}"></button>
</span>
我需要为 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>
这会导致输出为空并且根本不打印任何内容。有人可以帮我解决这个问题吗?
您应该直接使用点 (.) 符号引用迭代项 属性,而不是在内部通过 SpEL 表达式求值 (*{name}
)你的 html 元素:
<span th:each="component : ${body.components}"
th:object="${component}"
th:if="${component.name} == 'MATERIAL'">
<button th:text="*{title}"></button>
</span>