以下两个块会评估相同的内容,那么您何时使用th:remove="tag"
而不是th:block
?
<th:block th:text="${myBean.value}">[value]</th:block>
与
<span th:remove="tag" th:text="${myBean.value}">[value]</span>
答案 0 :(得分:0)
由于它们可以互换使用,我认为这是基于意见的......但为了便于阅读,我的观点是:
<th:block />
应该用于执行结构逻辑(th:if
,th:each
等等。)并且只有在父标记上不可能时才会这样做。例如,在循环中必须包含多个元素的情况下 - 例如,为每个对象生成2个表行的循环:
<table>
<th:each th:each="object: ${objects}">
<tr>
<td th:text="${object.data1}" />
<td th:text="${object.data2}" />
</tr>
<tr>
<td th:text="${object.data3}" />
<td th:text="${object.data4}" />
</tr>
</th:each>
<table>
th:remove
仅应用于示例数据,这些数据只应在浏览器/原型设计中查看文件时呈现,而不会呈现百日咳:
<table>
<th:each th:each="object: ${objects}">
<tr>
<td th:text="${object.data1}" />
<td th:text="${object.data2}" />
</tr>
<tr>
<td th:text="${object.data3}" />
<td th:text="${object.data4}" />
</tr>
</th:each>
<tr th:remove="all">
<td>Mild Cinnamon</td>
<td>1.99</td>
</tr>
<tr th:remove="all">
<td>Other</td>
<td>Data</td>
</tr>
<table>
在您想要输出没有标签的数据/文本的特定情况下,我更喜欢内联表达式。默认情况下,它们会在百万美元3中启用。所以:
[[${myBean.value}]]
代替<th:block th:text="${myBean.value}">[value]</th:block>