一.刪除模板片斷使用th:remove屬性html
th:remove的值以下:less
1.all:刪除包含標籤和全部的孩子。spa
2.body:不包含標記刪除,但刪除其全部的孩子。code
3.tag:包含標記的刪除,但不刪除它的孩子。htm
4.all-but-first:刪除全部包含標籤的孩子,除了第一個。blog
5.none:什麼也不作。這個值是有用的動態評估。rem
<table> <tr> <th>NAME</th> <th>PRICE</th> <th>IN STOCK</th> <th>COMMENTS</th> </tr> <tr th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'"> <td th:text="${prod.name}">Onions</td> <td th:text="${prod.price}">2.41</td> <td th:text="${prod.inStock}? #{true} : #{false}">yes</td> <td> <span th:text="${#lists.size(prod.comments)}">2</span> comment/s <a href="comments.html" th:href="@{/product/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view</a> </td> </tr> <tr class="odd" th:remove="all"> <td>Blue Lettuce</td> <td>9.55</td> <td>no</td> <td> <span>0</span> comment/s </td> </tr> <tr th:remove="all"> <td>Mild Cinnamon</td> <td>1.99</td> <td>yes</td> <td> <span>3</span> comment/s <a href="comments.html">view</a> </td> </tr> </table>
結果爲:字符串
<table> <tr> <th>NAME</th> <th>PRICE</th> <th>IN STOCK</th> <th>COMMENTS</th> </tr> <tr> <td>Fresh Sweet Basil</td> <td>4.99</td> <td>yes</td> <td> <span>0</span> comment/s </td> </tr> <tr class="odd"> <td>Italian Tomato</td> <td>1.25</td> <td>no</td> <td> <span>2</span> comment/s <a href="/gtvg/product/comments?prodId=2">view</a> </td> </tr> <tr> <td>Yellow Bell Pepper</td> <td>2.50</td> <td>yes</td> <td> <span>0</span> comment/s </td> </tr> <tr class="odd"> <td>Old Cheddar</td> <td>18.75</td> <td>yes</td> <td> <span>1</span> comment/s <a href="/gtvg/product/comments?prodId=4">view</a> </td> </tr> </table>
最後兩行<tr>被刪除了。it
二.th:remove屬性能夠採起任何Thymeleaf標準表達式,只要容許它返回一個字符串值(all
, tag
, body
, all-but-first
or none
)。io
這意味着刪除多是有條件的:
<a href="/something" th:remove="${condition}? tag : none">Link text not to be removed</a>
th:remove
把null
等同於 none,因此下面和上面的實際上是同樣的:
<a href="/something" th:remove="${condition}? tag">Link text not to be removed</a>
所以,若是${condition}
is 是false,將返回null,所以沒有刪除會被執行。