深色模式
片段规范语法
片段表达式的语法非常简单明了。它有三种不同的格式:
- "~{templatename::selector}"包括将指定的标记选择器应用于名为 的模板后生成的片段templatename。请注意,selector可以仅仅是一个片段名称,因此您可以指定像上面那样简单的~{templatename::fragmentname}名称~{footer :: copy}。
INFO
标记选择器语法由底层 AttoParser 解析库定义,类似于 XPath 表达式或 CSS 选择器。更多信息请参见附录 C。
- "~{templatename}"包含名为“.”的完整模板templatename。
INFO
th:insert请注意,您在/标签中使用的模板名称th:replace必须能够被模板引擎当前使用的模板解析器解析。
- ~{::selector}"或者"~{this::selector}"插入与该表达式匹配的同一模板片段。如果在表达式出现的模板中找不到匹配项,则会遍历模板调用(插入selector)堆栈,直到找到匹配项为止。selector
以上示例中的andtemplatename和 or都可以是功能齐全的表达式(甚至是条件表达式!),例如:selector
html
<div th:insert="~{ footer :: (${user.isAdmin}? #{footer.admin} : #{footer.normaluser}) }"></div>片段可以包含任何th:*属性。这些属性会在片段被包含到目标模板(带有th:insert/th:replace属性的模板)后进行评估,并且它们可以引用该目标模板中定义的任何上下文变量。
INFO
这种片段方法的一大优势在于,您可以将片段编写在浏览器可以完美显示的页面中,并具有完整且有效的标记结构,同时仍然能够让 Thymeleaf 将它们包含在其他模板中。
