【问题标题】:Thymeleaf: append to html element / avoiding repetitive iterationThymeleaf:附加到 html 元素/避免重复迭代
【发布时间】:2016-02-18 17:12:12
【问题描述】:

我正在寻找一种使用 Thymeleaf 将 html 元素动态附加到其他 html 元素的方法。

考虑以下几点:

<ol class="ol1" />
<ol class="ol2" />
<ol class="ol3" />

<iterate th:each="model">
  <!-- ol1.append(model.name) -->
  <!-- ol2.append(model.type) -->
  <!-- ol3.append(model.something) -->
</iterate>

我知道一个可能的解决方案是有 3 个循环,一个嵌套在每个 &lt;ol&gt; 标记中,如下所示:

<ol class="ol1">
  <iterate  th:each="model">
    model.name
  </iterate>
</ol>
<ol class="ol2">
  <iterate  th:each="model">
    model.type
  </iterate>
</ol>
<ol class="ol3">
  <iterate  th:each="model">
    model.something
  </iterate>
</ol>

上述解决方案对我来说太低效了。

那么,Thymeleaf 是否提供了在这种情况下只执行一次迭代的功能?

【问题讨论】:

    标签: html loops iteration thymeleaf


    【解决方案1】:

    抱歉,没有比这更简单或更有效的方法了。我开始考虑实现这一目标的其他方法,没有比您在问题中使用的三个循环更好的方法了。

    【讨论】:

    • 您对其他方法的研究是否包括扩展 Thymeleaf 核心 API 以允许可以调用自定义 java 函数的自定义方言?我还没有找到一种方法来做到这一点,但我觉得应该是可能的。
    • 您可以使用模板完成此操作。见thymeleaf.org/doc/tutorials/2.1/…。我没有他们的经验,所以我无法提供进一步的帮助。目前还不清楚您要在这里消除什么样的“低效率”。我认为这是开发工作,但是,看到您有兴趣投入其中的努力,这可能不是您的目标。我相信所获得的任何处理效率都可以忽略不计。
    • 另外,请注意 Thymeleaf 3 使用新的方言/处理器系统,因此任何自定义工作都可能需要迁移,假设您将在发布时进行升级。见github.com/thymeleaf/thymeleaf/issues/401
    • 是的,尤其是开发工作。因为代码库中有 1000 多个 Thymeleaf 文件,这样的事情会大大减少未来花费的时间。感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2012-10-01
    • 1970-01-01
    • 2022-11-27
    • 2020-04-22
    • 2021-06-21
    • 2016-10-30
    相关资源
    最近更新 更多