You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thymeleaf布局如何实现动态标题格式(无内容时仅显示布局标题)

解决Thymeleaf布局标题空内容时的多余破折号问题

嗨,这个问题其实很容易搞定,咱们不用动内容页面的代码,只需要在布局文件里优化layout:title-pattern的规则,利用Thymeleaf的字符串判断表达式就能实现需求。

原来的标题模式是直接拼接$CONTENT_TITLE - $LAYOUT_TITLE,当$CONTENT_TITLE为空时,就会出现多余的- 前缀。咱们可以给标题模式加个条件判断:只有当$CONTENT_TITLE不为空时,才拼接CONTENT_TITLE + ' - ',否则直接显示布局标题。

修改后的layout.html的<title>标签代码如下:

<!doctype html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.w3.org/1999/xhtml">
<head>
<title layout:title-pattern="${#strings.isEmpty(CONTENT_TITLE) ? '' : CONTENT_TITLE + ' - '}$LAYOUT_TITLE">My Company Name</title>
<!-- some scripts and styles -->
</head>
<body>
<!-- some content -->
</body>
</html>

效果验证:

  • 当内容页面的pageTitle为Newsletter时,最终标题会是:<title>Newsletter - My Company Name</title>,和之前的正确效果一致。
  • 当pageTitle为空时,$CONTENT_TITLE是空字符串,条件表达式会返回空,最终标题就会是:<title>My Company Name</title>,完美去掉了多余的破折号。

另外还有一种思路是在内容页面处理:当meta.pageTitle为空时,让内容页面的<title>标签也为空,但相比之下,在布局里统一处理会更灵活,所有内容页面都能自动复用这个规则,不用每个页面都加判断。

内容的提问来源于stack exchange,提问作者Karl Regensburger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:27:02