thymeleaf 动态生成表格-换行问题-每隔n列换一行

这种方式在高版本的thymeleaf中报错,
建议使用新的方式生成: 动态生成表格-新方式

用到的th标签

th:remove

  1. tag: 删除当前标签(即包含这个属性的标签),但不删除它的子标签(孩子节点)。
  2. all: 删除当前标签和它的所有子标签。
  3. body:不删除当前标签,但删除它所有的子标签。
  4. all-but-first: 删除当前标签的所有子标签,除了第一个子标签。
  5. none:什么也不做。

th:utext
可以输出非文本内容(比如HTML元素)

th:text
只能输出文本内容,如果是特殊字符则会转义成普通文本输出(如html元素会变为文本输出)

th:each
用法:th:each="usr,status:${userList}"
参数${userList}表示要循环的集合,
第一变量usr表示当前循环中的元素引用(集合中的一个元素,变量名字可以自定义),
第二个变量status表示循环状态值(变量名字可以自定义)

  1. status.index:表示当前元素的索引(从0开始计算)。
  2. status.count: 也是索引(从1开始计算,即index+1)
  3. status.size: 被迭代集合对象大小

th:block
功能标签,标签本身不会输出为一个html元素,只是用来做取值或者循环等功能性用途。

示例代码

thymeleaf 动态生成表格,比如每隔5列换一行(增加一个<tr></tr>)

<table cellpadding="0" cellspacing="0" border="1">
    <th:block th:each="usr,status:${userList}">
        <p th:remove="tag" th:utext="${(status.index+1)%5==1 ? '&lt;tr&gt;':''}"/>
        <td><input name="userList" type="checkbox" th:value="${usr.id}" th:text="${usr.nickname}"/>&nbsp;
        </td>
        <p th:remove="tag" th:utext="${(status.index+1)%5==0 ? '&lt;/tr&gt;':''}"/>
    </th:block>
</table>
    原文作者:薛定谔的雄猫
    原文地址: https://blog.csdn.net/iteye_19045/article/details/97809707
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞