两个Thymeleaf属性有什么区别:th:include
和th:replace
?
答案 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)