我在Thymeleaf玩了一点(…),这是我的结论。
在下文中,我将使用
tag任何给定的标签(
div,
script,
span等)和
fragment可接受的片段语法(
this ::script,
this :: content,
template :: #menu等)
当您使用时
<tagth:include="fragment"/>,Thymeleaf始终会生成一个
<tag>...</tag>。如果不存在,则内容为空
<tag></tag>。如果片段存在,则内容变为片段的内容。例如
<divth:"other :: #foo/>用于片段
<p id="foo">bar</p>给出
<div>bar</div>
当您使用时
<tag th:replace="fragment"/>,Thymeleaf尝试将其替换为完整的片段,包括标记。有以下特殊情况:
- 如果该片段不存在,则Thymeleaf不会插入任何内容
- 如果片段由a标识
th:fragment="id"
,则Thymeleaf会删除th:fragment
(例如:<p th:fragment="foo">bar</p>
gives<p>bar</p>
,无论tag
是什么)。 - 如果片段是由dom元素标识的,则Thymeleaf保留dom元素(例如:
<p id="foo">bar</p>
gives<p id="foo">bar</p>
,无论tag
是什么)
因此,如果您只想在
<script>片段存在时就包含该片段,则只需通过
<script th:fragment...>...</script>其存在来对其进行标识,并通过以下方式将其包含在布局中:
<script th:replace="this :: script"/>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)