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>










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章