部分 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>
我有一个像这样的 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>