我正在尝试获取循环的th:list的列表大小,在我使用th:if过滤掉一些数据之后,但这给了我完整的列表大小而不是过滤后的列表大小
假设事务列表的大小为5,并且包含3个我要过滤的类型,它仍将列表大小返回为5,而不是3。如果我打印出这些值,则仅显示3,所以我知道数据很好,百里香可以按预期过滤
<th:block th:each="transaction,iter : ${transactions}" th:object="${transaction}" th:if="${transaction.test} == 'test'">
<tr>
<td><span th:text="${iter.size}"></span></td>
</tr>
</th:block>
我希望输出为3,因为它的事务列表包含3个“测试”值和2个垃圾值。但是,它的大小为5而不是3。打印出这些值后,它将生成3行(按预期),但值为5(过滤后应为3)。
答案 0 :(得分:0)
th:if
不会更改列表。它只是控制是否显示一段HTML。
话虽如此,您可以使用collection selection完成此操作。例如,如下所示:
<tr th:with="filtered=${transactions.?[test == 'Test']}">
<td th:text="${filtered.size()}" />
</tr>