8.4 删除模板片段返回示例应用,让我们重新看一下我们产品列表模板的最新版本:
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Onions | 2.41 | yes |
2 comment/s
th:href="@{/product/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view |
为什么?因为尽管浏览器可以正确显示,这张表格只有一行,而这行数据是模拟数据。作为一个原型,它的外观显然不够真实……我们需要展示不止一个产品,我们需要更多行.
那么我们添加几行吧:
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Onions | 2.41 | yes |
2 comment/s
th:href="@{/product/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view |
Blue Lettuce | 9.55 | no |
0 comment/s |
Mild Cinnamon | 1.99 | yes |
3 comment/s |
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Fresh Sweet Basil | 4.99 | yes |
0 comment/s |
Italian Tomato | 1.25 | no |
2 comment/s |
Yellow Bell Pepper | 2.50 | yes |
0 comment/s |
Old Cheddar | 18.75 | yes |
1 comment/s |
Blue Lettuce | 9.55 | no |
0 comment/s |
Mild Cinnamon | 1.99 | yes |
3 comment/s |
我们需要一种方法在模板处理过程中删除这两行。让我们在第二和第三行使用th:remove属性来实现这一点
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Onions | 2.41 | yes |
2 comment/s
th:href="@{/product/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view |
Blue Lettuce | 9.55 | no |
0 comment/s |
Mild Cinnamon | 1.99 | yes |
3 comment/s |
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Fresh Sweet Basil | 4.99 | yes |
0 comment/s |
Italian Tomato | 1.25 | no |
2 comment/s |
Yellow Bell Pepper | 2.50 | yes |
0 comment/s |
Old Cheddar | 18.75 | yes |
1 comment/s |
all:移除包含标签及其所有子元素。body:不移除包含标签,但移除其所有子元素。tag:移除包含标签,但不移除其子元素。all-but-first:移除包含标签的所有子元素,除了第一个以外。none:不执行任何操作。该值对于动态评估很有用。那个all-but-first值有什么用处?它将让我们在原型设计时节省一些th:remove="all"时间:
NAME | PRICE | IN STOCK | COMMENTS |
---|---|---|---|
Onions | 2.41 | yes |
2 comment/s
th:href="@{/product/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view |
Blue Lettuce | 9.55 | no |
0 comment/s |
Mild Cinnamon | 1.99 | yes |
3 comment/s |
这意味着移除操作可以是条件性的,例如:
Link text not to be removed请注意,th:remove会将null视为none的同义词,因此以下写法与上面示例的作用相同:
Link text not to be removed在这种情况下,如果${condition}为 false,null将被返回,因此不会执行任何移除操作。