当前位置: 首页 > article >正文

3.3 Thymeleaf语法

文章目录

  • 引言
  • Thymeleaf标签
    • 显示标签
    • 链接地址标签
    • 条件判断标签
    • 元素遍历标签
  • Thymeleaf表达式
    • 变量表达式
    • 选择变量表达式
    • 消息表达式
    • 链接表达式
  • Thymeleaf内置对象
    • 上下文对象
    • 上下文变量
    • 上下文区域
    • 请求对象
    • 响应对象
    • 会话对象
    • 日期对象
  • 实战演练
    • 创建控制器
    • 创建模板页面
  • 结语

在这里插入图片描述

引言

Thymeleaf是一个功能强大的Java模板引擎,它提供了丰富的语法和表达式,使得开发者能够轻松地构建动态Web页面。在本讲稿中,我们将深入探讨Thymeleaf的标签、表达式和内置对象,以便更好地理解和使用这一工具。

Thymeleaf标签

显示标签

  • th:text:用于指定标签显示的文本内容。例如,<p th:text="${message}">你好,世界!</p> 将显示变量message的值。
  • th:utext:与th:text类似,但不对特殊字符进行转义,适用于需要显示HTML内容的场景。

链接地址标签

  • th:href:针对<a>标签的href属性和<link>标签的href属性,用于指定链接地址。
  • th:src:针对<img>标签的src属性和<script>标签的src属性,用于指定资源的链接地址。

条件判断标签

  • th:if:用于条件判断,如果条件为真,则渲染该标签内的HTML内容。
  • th:unless:与th:if相反,如果条件为假,则渲染该标签内的HTML内容。
  • th:switchth:case:用于多分支条件判断,类似于Java中的switch语句。

元素遍历标签

  • th:each:用于遍历集合的元素,类似于Java中的for循环。

Thymeleaf表达式

变量表达式

  • ${...}:用于获取上下文中的变量值。例如,在案例3.2中的${currentDate}用于获取当前日期。

选择变量表达式

  • *{...}:用于从被选定对象获取属性值,通常与th:object属性一起使用。

消息表达式

  • #{...}:用于Thymeleaf模板页面国际化内容的动态替换和展示。

链接表达式

  • @{...}:用于页面跳转或资源的引入,类似于构建URL。

Thymeleaf内置对象

上下文对象

  • #ctx:代表当前的Thymeleaf上下文对象。

上下文变量

  • #vars:提供对当前模板上下文中所有变量的访问。

上下文区域

  • #locale:提供对当前区域设置的访问。

请求对象

  • #request:提供对当前HTTP请求对象的访问。

响应对象

  • #response:提供对当前HTTP响应对象的访问。

会话对象

  • #session:提供对当前HTTP会话对象的访问。

日期对象

  • #dates#calendars:提供日期和日历操作功能,例如格式化日期。

实战演练

让我们通过一个简单的例子来演示Thymeleaf语法的实际应用。

创建控制器

首先,创建一个控制器,用于处理请求并添加模型属性:

@Controller
public class ExampleController {
    @RequestMapping("/example")
    public String example(Model model) {
        model.addAttribute("user", new User("张晓峰", 30));
        return "example";
    }
}

创建模板页面

然后,创建一个Thymeleaf模板页面example.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf示例</title>
</head>
<body>
    <p th:text="${user.name} + '的年龄是 ' + ${user.age}">默认文本</p>
    <p th:if="${user.age > 18}">用户是成年人</p>
    <p th:unless="${user.age > 18}">用户是未成年人</p>
    <div th:each="item : ${user.items}">
        <p th:text="${item}">默认文本</p>
    </div>
</body>
</html>

在这个例子中,我们使用了th:text来显示用户的姓名和年龄,th:ifth:unless来进行条件判断,以及th:each来遍历用户的项目列表。

结语

通过本讲稿,我们详细了解了Thymeleaf的标签、表达式和内置对象。这些知识将帮助你在实际开发中更加灵活和高效地使用Thymeleaf来构建动态Web页面。记得在实际应用中,根据项目需求选择合适的语法和表达式。


http://www.kler.cn/news/353835.html

相关文章:

  • 深入理解Qt中的QTableView、Model与Delegate机制
  • C++——vector的了解与使用
  • 易我数据恢复软件怎么样?2024四大数据恢复工具推荐!
  • 知识图谱融入向量数据库,带来RAG效果飞升
  • Java重修笔记 InetAddress 类和 Socket 类
  • 数据结构——排序(归并排序)
  • 给定任意非空有向图 G,输出 G 中所有 K 顶点的算法,并返回 K 顶点的个数。
  • 通过API进行Milvus实例配置
  • Android摄像头Camera2和Camera1的一些总结
  • 百万字文本内容搜索Java实现方案
  • springboot项目多个数据源配置 dblink
  • 牛客编程初学者入门训练——BC19 牛牛的对齐
  • git clone --single-branch 提升效率
  • electron-vite_8修改版本号和出品公司名称
  • 【Golang】Go语言中的反射原理解析与应用实战
  • ssm资产管理信息系统+vue
  • 组合式API有什么好处
  • 【React】父组件如何调用子组件的方法
  • netron安装(windows linux)
  • 通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统