部分 Thymeleaf 片段仅包含一次

Adr*_*Ber 2 thymeleaf

我有一个像这样的 Thymeleaf 片段

<div th:fragment="f1">
    <script src="x.js"></script>
    <div> ... </div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本部分我只想包含一次,即使我将f1在页面中包含不止一次。实现这一目标的最简单/最干净的方法是什么?

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

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

小智 5

使用#ids。

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

或者

<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>
Run Code Online (Sandbox Code Playgroud)