For each operator in Thymeleaf

前端 未结 2 1392
-上瘾入骨i
-上瘾入骨i 2020-12-17 07:34

I can not find syntax for building simple for-each-loop in Thymeleaf template. I\'m not satisfied with just th:each=\"\" attribute, because it copi

相关标签:
2条回答
  • 2020-12-17 08:13

    The th:block solution is definitely the best one, but alternatively you can also try using th:remove="tag" in order to remove the containing 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>
    

    The benefit of this approach is that you can also pass a Thymeleaf expression to th:remove in order to only remove the tag conditionally, e.g. if you want only some users to be included in a <tbody>, besides having other interesting uses.

    Here is the documentation for th:remove.

    0 讨论(0)
  • 2020-12-17 08:23

    Use th:block as stated in the Thymeleaf guide

    th:block is a mere attribute container that allows template developers to specify whichever attributes they want. Thymeleaf will execute these attributes and then simply make the block disappear without a trace.

    So it could be useful, for example, when creating iterated tables that require more than one <tr> for each element:

    <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>
    
    0 讨论(0)
提交回复
热议问题