🌟 Thymeleaf的常用语法
Thymeleaf是一个Java模板引擎,用于处理HTML、XML、JavaScript、CSS等文件。它可以与Spring框架无缝集成,为Web应用程序提供优雅的模板解决方案。本文将介绍Thymeleaf的常用语法,包括th属性、表达式、内置对象、内置方法等。
🎨 th属性
Thymeleaf提供了一系列以th:开头的属性,用于在HTML标签中添加动态内容。例如:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${title}">默认标题</title>
</head>
<body>
    <h1 th:text="${message}">默认消息</h1>
</body>
</html>
 
在这个例子中,th:text属性用于设置<title>和<h1>标签的文本内容。当Thymeleaf解析这个模板时,它会用${title}和${message}表达式的值替换默认的文本。
📚 表达式
Thymeleaf支持多种表达式,用于在模板中处理数据。下面介绍几种常用的表达式。
🔢 变量表达式
变量表达式用于访问模板上下文中的变量。语法为${...},例如:
<p th:text="${user.name}">默认用户名</p>
 
🔗 链接表达式
链接表达式用于生成URL。语法为@{...},例如:
<a th:href="@{/login}">登录</a>
 
📨 消息表达式
消息表达式用于国际化支持,从资源文件中获取文本。语法为#{...},例如:
<p th:text="#{welcome.message}">默认欢迎消息</p>
 
📦 代码块表达式
代码块表达式用于在模板中插入一段代码。语法为[[...]](文本)和[(...)](属性),例如:
<script th:inline="javascript">
    /*<![CDATA[*/
    var message = [[${message}]];
    /*]]>*/
</script>
 
🎛 选择变量表达式
选择变量表达式用于根据条件选择不同的值。语法为(...)?:(...),例如:
<p th:text="${user.name} ?: '匿名用户'">默认用户名</p>
 
🛠 常用的内置对象
Thymeleaf提供了一些内置对象,用于在模板中处理常见任务。例如:
#ctx:访问上下文对象。#vars:访问上下文中的所有变量。#locale:访问当前区域设置。#httpServletRequest:访问HttpServletRequest对象。#httpSession:访问HttpSession对象。
🧪 常用的内置方法
Thymeleaf还提供了一些内置方法,用于处理字符串、日期、集合等。例如:
#strings:字符串处理方法,如#strings.toUpperCase(str)。#dates:日期处理方法,如#dates.format(date, 'yyyy-MM-dd')。#lists:集合处理方法,如#lists.size(list)。
🧵 字符串拼接
在Thymeleaf中,可以使用+运算符进行字符串拼接。例如:
<p th:text="'Hello, ' + ${user.name} + '!'">默认问候</p>
 
📊 条件比较
Thymeleaf支持常见的条件比较,如==、!=、<、>等。例如:
<div th:if="${user.age} > 18">成年用户</div>
 
🚦 switch多分支
Thymeleaf支持switch语句,用于多分支条件判断。例如:
<div th:switch="${user.role}">
    <p th:case="'admin'">管理员</p>
    <p th:case="'user'">普通用户</p>
    <p th:case="*">未知角色</p>
</div>
 
🔁 循环
Thymeleaf支持th:each属性,用于遍历集合。例如:
<ul>
    <li th:each="item : ${items}" th:text="${item.name}">默认列表项</li>
</ul>
 
🧮 逻辑运算符
在Thymeleaf中,我们可以使用加(+)、减(-)、乘(*)、除(/)和取余(%)等基本算术运算符来进行数值计算。这些运算符的使用方法与传统的编程语言类似,可以直接应用在表达式中,实现数值的加减乘除等操作。
例如:
<p th:text="${user.age} + 1">年龄加一</p>
 
👨💻 逻辑运算符
逻辑运算符主要用于处理布尔值之间的关系,包括与(&&)、或(||)和非(!)等操作。通过逻辑运算符,我们可以方便地实现条件判断和逻辑控制,从而使得模板的渲染更加灵活和智能。
例如:
<p th:text="${user.age} > 18 and ${user.gender} == 'male'">成年男性</p>
 
🧩 内联
Thymeleaf支持内联表达式,用于在文本和属性中直接插入表达式。这种表达式允许我们在文本内容和HTML属性中直接插入动态数据,从而实现页面内容的灵活定制。例如:
<p>你好,[[${user.name}]]!</p>
 
Thymeleaf的内联表达式为开发者提供了一种简洁、高效的方式来处理各种场景,例如文本替换、条件渲染等。
😉 总结
通过以上介绍,相信你已经对Thymeleaf的常用语法有了一定的了解。在实际项目中,你可以根据需要灵活运用这些语法,编写出优雅、高效的模板。




















