這種方式在高版本的thymeleaf中報錯,
建議使用新的方式生成: 動態生成表格-新方式
用到的th標籤
th:remove
tag
: 刪除當前標籤(即包含這個屬性的標籤),但不刪除它的子標籤(孩子節點)。all
: 刪除當前標籤和它的所有子標籤。body
:不刪除當前標籤,但刪除它所有的子標籤。all-but-first
: 刪除當前標籤的所有子標籤,除了第一個子標籤。none
:什麼也不做。
th:utext
可以輸出非文本內容(比如HTML元素)
th:text
只能輸出文本內容,如果是特殊字符則會轉義成普通文本輸出(如html元素會變爲文本輸出)
th:each
用法:th:each="usr,status:${userList}"
參數${userList}
表示要循環的集合,
第一變量usr
表示當前循環中的元素引用(集合中的一個元素,變量名字可以自定義),
第二個變量status
表示循環狀態值(變量名字可以自定義)
- status.index:表示當前元素的索引(從0開始計算)。
- status.count: 也是索引(從1開始計算,即index+1)
- 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 ? '<tr>':''}"/>
<td><input name="userList" type="checkbox" th:value="${usr.id}" th:text="${usr.nickname}"/>
</td>
<p th:remove="tag" th:utext="${(status.index+1)%5==0 ? '</tr>':''}"/>
</th:block>
</table>