部分 Thymeleaf 片段仅包含一次

Part of Thymeleaf fragment included only once

我有一个像这样的 Thymeleaf 片段

<div th:fragment="f1">
    <script src="x.js"></script>
    <div> ... </div>
</div>

脚本部分我只想包含一次,尽管我会在页面中多次包含 f1。 easiest/cleanest 实现此目标的方法是什么?

我什至可以将这个片段拆分成两个片段,这样就可以减少如何在一个页面中只包含一个片段的问题了。

如果我们能够操纵来自 Thymeleaf 的请求属性,则可以以某种方式完成。我知道 Thymeleaf 仅用于渲染,但这样的功能可能很有用。即使有类似 include-once 的东西,或者如果包含的片段有一个 id(或 th:id)属性,也只包含一次。

使用#ids。

<div th:fragment="f1">
  <script src="x.js" th:if="${#ids.seq('f1.script.') == 'f1.script.1'}"></script>
  hello
</div>

<div th:fragment="f1">
  <script src="x.js" th:if="${#ids.next('f1.script.') == 'f1.script.1'}" th:id="${#ids.seq('f1.script.')}"></script>
  hello
</div>