Thymeleaf片段的一部分仅包括一次

时间:2015-05-26 09:51:43

标签: thymeleaf

我有一个像这样的Thymeleaf片段

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

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

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

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

1 个答案:

答案 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>