我有一个像这样的Thymeleaf片段
<div th:fragment="f1">
<script src="x.js"></script>
<div> ... </div>
</div>
脚本部分我想只包含一次,即使我在页面中多次包含f1
。
实现这一目标的最简单/最简洁的方法是什么?
我甚至可以将这个片段分成两个片段,然后问题将减少如何在一个页面中只包含一个片段。
如果我们能够操作Thymeleaf的请求属性,可以以某种方式完成。我知道Thymeleaf只是为了渲染,但这样的功能可能会有用。即使有类似include-once的东西,或者如果包含的片段具有id(或th:id)属性,也只包含一次。
答案 0 :(得分:3)
使用#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>