我正在使用Thymeleaf Layout Dialect。
我有一个“defaultLayout”模板,其中title元素定义如下:
<title layout:title-pattern="$DECORATOR_TITLE"
th:text="${pageTitle}">Page Title</title>
其中pageTitle
是从子模板(“home.html”)传递的变量,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="defaultLayout"
th:with="pageTitle='Home'">
到目前为止一切顺利。但是我现在想要“扩展”“home.html”模板(“foo.html”)。例如:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="home"
th:with="pageTitle='Foo'">
问题在于,当呈现“foo.html”时,它会获得页面标题“Home”而不是“Foo”。
Thymeleaf在这里有过错吗?它不应该用“Foo”替换“pageTitle”属性吗?有没有更好的方法来做到这一点,我错过了?
答案 0 :(得分:0)
您需要做的就是以下
在home.html
中将html
部分更改为:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="defaultLayout"
th:with="${null != pageTitle ? pageTitle : 'Home'}">