3.3 Thymeleaf语法

devtools/2024/10/17 23:38:12/

文章目录

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

在这里插入图片描述

引言

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

Thymeleaf_5">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_23">Thymeleaf表达式

变量表达式

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

选择变量表达式

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

消息表达式

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

链接表达式

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

Thymeleaf_37">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.ppmy.cn/devtools/126584.html

相关文章

三、AOP

文章目录 1. AOP&#xff08;概念&#xff09;2. AOP&#xff08;底层原理&#xff09;2.1 AOP 底层使用动态代理2.2 AOP&#xff08;JDK动态代理&#xff09; 3. AOP&#xff08;术语&#xff09;3.1 连接点3.2 切入点3.3 通知&#xff08;增强&#xff09;3.4 切面 4. AOP操作…

基于华为云智慧生活生态链设计的智能鱼缸

一. 引言 1.1 项目背景 随着智能家居技术的发展和人们对高品质生活的追求日益增长&#xff0c;智能鱼缸作为一种结合了科技与自然美的家居装饰品&#xff0c;正逐渐成为智能家居领域的新宠。本项目旨在设计一款基于华为云智慧生活生态链的智能鱼缸&#xff0c;它不仅能够提供…

【哈工大_操作系统理论】L2223 多级页表与快表段页结合的实际内存管理

L3.3 多级页表与快表 一页大小是4K&#xff0c;最大的浪费其实就是一页都空着&#xff0c;所以最大浪费是4K。则为了避免浪费&#xff0c;页大小必须小一些。 1、问题&#xff1a;需要很大内存空间存放页表 一般内存大小为4G&#xff0c;页大小为4K&#xff0c;则有1M个页表象…

灵当CRM data/pdf.php 任意文件读取漏洞复现

0x01 产品简介 灵当CRM是一款专为中小企业打造的智能客户关系管理工具,由上海灵当信息科技有限公司开发并运营。广泛应用于金融、教育、医疗、IT服务、房地产等多个行业领域,帮助企业实现客户个性化管理需求,提升企业竞争力。无论是新客户开拓、老客户维护,还是销售过程管…

利用Matlab处理回声信号(利用卷积运算产生一个带回声的信号)

一、.首先调用一个声音信号&#xff0c;以下是各种MATLAB自带的声音&#xff1b; 1. 鸟叫声 load chirp sound(y,Fs) 2. 敲锣声 load gong sound(y,Fs) 3. 哈利路亚 load handel sound(y,Fs) 4. 欢笑声 load laughter sound(y,Fs) 5. 啪哒声 load splat sound(y,Fs) 6. 火车声 …

点评项目-6-缓存更新策略、缓存穿透、雪崩

缓存更新策略 使用 redis 缓存记录的信息&#xff0c;有可能在数据库被信息被修改导致信息不一致&#xff0c;使用缓存更新来解决这个问题 缓存更新策略主要有三种&#xff1a; 1.内存淘汰(redis默认开启) 2.超时剔除(给key添加TTL时间) 3.主动更新(编写业务逻辑) 主动更新策…

ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用

在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值&#xff0c;特别是在数据统计分析领域。GPT的介入为数据处理、模型构建和结果解释带来了前所未有的便利。与此同时&#xff0c;R语言凭借其开源、自由、免费的特性&#xff0c;成为了统计分析和数据可视化…

qt creator 开发环境的安装

1.找官网 官网地址&#xff1a;Installation | Qt Creator Documentation 点 Parent Directory 继续点 Parent Directory 点 archive/ 2.下载在线安装器 点 online_ainstallers 选择在线安装器版本 选择对应版本后进入下载列表&#xff0c;根据自己的系统选择下载。 下载后…