【发布时间】:2020-02-26 21:59:01
【问题描述】:
我正在使用最新版本的thymeleaf page layouts。
我想为我的所有页面使用标题模式$CONTENT_TITLE - $LAYOUT_TITLE。因此,我创建了以下布局和内容文件。
我的layout.html 文件看起来像
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.w3.org/1999/xhtml">
<head>
<title layout:title-pattern="$CONTENT_TITLE - $LAYOUT_TITLE">My Company Name</title>
<!-- some scripts and styles --->
</head>
<body>
<!-- some content --->
</body>
</html>
我的content.html 看起来像
<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org"
layout:decorate="~{layout.html}">
<head>
<title>
<th:block th:if="${meta.pageTitle}" th:text="${meta.pageTitle}"></th:block>
</title>
</head>
<body>
<!-- some content --->
</body>
</html>
如果内容页面获得Newsletter 作为属性pageTitle 的值并且我在浏览器中调用内容页面,我会得到正确的结果:
<title>Newsletter - My Company Name</title>
如果我的内容页面没有标题,我只想在我的<title> 标记中显示$LAYOUT_TITLE,不带前导分隔符-。但是,我得到了我的代码
<title>- My Company Name</title>
我想要的是
<title>My Company Name</title>
我怎样才能以简单的方式实现这一目标?据我所知,我不能在 layout.html 中使用$CONTENT_TITLE 并检查它是否为空,或者我可以吗?
【问题讨论】:
标签: java html spring spring-mvc thymeleaf