你什么时候使用th:remove =" tag"与th:块?

时间:2018-02-17 19:18:04

标签: thymeleaf

以下两个块会评估相同的内容,那么您何时使用th:remove="tag"而不是th:block

<th:block th:text="${myBean.value}">[value]</th:block>

<span th:remove="tag" th:text="${myBean.value}">[value]</span>

1 个答案:

答案 0 :(得分:0)

由于它们可以互换使用,我认为这是基于意见的......但为了便于阅读,我的观点是:

<th:block />应该用于执行结构逻辑(th:ifth: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>