Thymeleaf包含和替换之间的区别?

时间:2016-05-08 19:27:44

标签: thymeleaf

两个Thymeleaf属性有什么区别:th:includeth:replace

4 个答案:

答案 0 :(得分:20)

根据documentation,如果您遇到这种情况:

<div th:include="..."> content here </div>

片段将放在<div>标记内。

但是当你使用替换时:

<div th:replace="..."> content here </div>

然后<div>将被内容替换。

  

Thymeleaf可以包含其他页面的一部分作为片段(而JSP   只包括完整的页面)使用th:include(将包括   片段的内容到其主机标签中)或th:replace(将   实际上用片段代替主机标签。

答案 1 :(得分:4)

尝试与此理解 假设这是片段

<div th:fragment="targetFragmentToIncludeInOurPage" id="tagWithFragmentAttribute">
 <div id="contentGoesHere"></div>
</div>

我们在这些div中使用了

<div id="tagWithReplaceAttribute" th:replace="fragments/header :: targetFragmentToIncludeInOurPage"></div>
<div id="tagWithInsertAttribute" th:insert="fragments/header :: targetFragmentToIncludeInOurPage"></div>
<div id="tagWithIncludeAttribute" th:include="fragments/header :: targetFragmentToIncludeInOurPage"></div>

所以最终输出:

<div id="tagWithFragmentAttribute">
 <div id="contentGoesHere"></div>
</div>

<div id="tagWithInsertAttribute">
 <div id="tagWithFragmentAttribute">
  <div id="contentGoesHere"></div>
 </div>
</div>

<div id="tagWithIncludeAttribute">
 <div id="contentGoesHere"></div>
</div>

答案 2 :(得分:2)

Thymeleaf可以将其他页面的一部分包含为片段(而JSP仅包括完整页面)使用th:include(将片段的内容包含在其主机标记中)或{{ 1}}(实际上将用片段替换主机标签)。这允许将片段分组为一页或几页。

答案 3 :(得分:0)

取自baeldung

有三种基本方法可以包含片段中的内容:

  • 插入–将内容插入标签
  • replace –用定义片段的标签替换当前标签
  • include –已弃用,但它仍可能出现在旧版代码中