Thymeleaf - 包括片段的内容

时间:2016-03-14 12:53:06

标签: java templates layout thymeleaf

Thymeleaf片段:

<div th:fragment="assets">
    <script src="myscript"></script>
    <script src="myscript2"></script>
</div>

这段代码插入片段:

<div th:replace="fragments/assets :: assets"></div>


如何只包含没有包装器的内容?

<script src="myscript"></script>
<script src="myscript2"></script>

5 个答案:

答案 0 :(得分:7)

您可以使用th:block仅包含块的内容。

将您的片段定义为 -

<th:block th:fragment="assets">
    <script src="myscript"></script>
    <script src="myscript2"></script>
</th:block>

包括这样 -

<th:block th:include="fragments/assets :: assets"></th:block>

希望这会对你有所帮助:)。

答案 1 :(得分:5)

尝试下面的

<div th:fragment="assets" th:remove="tag">
    <script src="myscript"></script>
    <script src="myscript2"></script>
</div>

答案 2 :(得分:1)

我发现处理脚本标记的最佳方法是使用Thymeleaf Layouts,因为当使用th:include或th:replace时,片段总是嵌套在标记内。

此外,我使用的一种有用方法是在布局模板的底部正常添加常用脚本,然后添加最终脚本内容块,例如:

  ...
  <script type="text/javascript" src="/resources/js/jquery-1.11.1.min.js"></script>
  <script type="text/javascript" src="/resources/js/bootstrap.min.js"></script>

  <div layout:fragment="script"></div>
</body>
</html>

然后使用该模板的页面可以在&#34;脚本中指定任何额外的javascript&#34;块:

<script th:inline="javascript" layout:fragment="script" type="text/javascript">
/*<![CDATA[*/
  // Some javascript...
/*]]>*/

答案 3 :(得分:1)

Yout Thymeleaf片段:

<div th:fragment="assets" th:remove="tag">
    <script src="myscript"></script>
    <script src="myscript2"></script>
</div>

您片段的代码插入:

<div th:replace="fragments/assets :: assets"></div>

这应该像:

<script src="myscript"></script>
<script src="myscript2"></script>

答案 4 :(得分:1)

使用此:

<div id="testId" th:include="fragments/assets :: assets"></div>

它还将在外部标签中插入指定的片段作为其主体,但不包含fragment标签。