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:switch、th: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:if和th:unless来进行条件判断,以及th:each来遍历用户的项目列表。
结语
通过本讲稿,我们详细了解了Thymeleaf的标签、表达式和内置对象。这些知识将帮助你在实际开发中更加灵活和高效地使用Thymeleaf来构建动态Web页面。记得在实际应用中,根据项目需求选择合适的语法和表达式。
相关文章:
3.3 Thymeleaf语法
文章目录 引言Thymeleaf标签显示标签链接地址标签条件判断标签元素遍历标签 Thymeleaf表达式变量表达式选择变量表达式消息表达式链接表达式 Thymeleaf内置对象上下文对象上下文变量上下文区域请求对象响应对象会话对象日期对象 实战演练创建控制器创建模板页面 结语 引言 Thy…...
使用Dlib库实现人脸检测和关键点定位
目录 前言 一、安装Dlib库 二、人脸检测 三、人脸关键点定位 前言 Dlib是一个现代化的 C 工具包,提供了一些机器学习算法和工具,特别是在面部识别和人脸关键点检测方面非常流行。它具有易于使用的 Python 接口,并被广泛应用于计算机视觉项…...
DNS隧道流量分析
DNS隧道 DNS协议又称域名系统是互联网的基础设施,只要上网就会用到,因而DNS协议是提供网络服务的重要协议,在黑客进入内网后会使用DNS、ICMP、HTTP等协议隧道隐藏通信流量。本文通过DNS隧道实验并对流量进行分析,识别DNS隧道流量…...
HCIP-HarmonyOS Application Developer 习题(十一)
(填空)1、某开发者在使用HarmonyOs的分布式力时,分布式_____能力是其他分布式能力的基础。 答案:软总线 分析:分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互…...
使用Ollama测试OpenAI的Swarm多智能体编排框架
Ollama https://ollama.com/ ollama run qwen2.5Install Requires Python 3.10 pip install githttps://github.com/openai/swarm.git代码V1 # 导入Swarm和Agent类 from swarm import Swarm, Agent from openai import OpenAI # 实例化Swarm客户端 openai_client OpenAI…...
C# 完美操作 Active Directory 详细总结,轻松玩转域管理
前言 嗨,大家好! 在这个数据信息飞速发展的 21 世纪,数据安全成为了每个企业关注的焦点,保护企业数据安全日益成为企业工作中的重中之重。 域服务器,尤其是微软的 Active Directory(AD)&…...
PCL 点云配准 KD-ICP算法(精配准)
目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 加载点云函数 2.1.2 构建KD树函数 2.1.3 KD-ICP配准函数 2.1.4 点云可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法…...
uniapp打包安卓apk步骤
然后安装在手机上就可以啦...
Springboot 整合 Java DL4J 实现安防监控系统
🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,…...
【数据结构与算法】第1课—算法复杂度
文章目录 1. 数据结构2. 算法3. 算法效率4. 算法复杂度5. 算法时间复杂度5.1 大O的渐进表示法5.2 时间复杂度示例 6. 空间复杂度6.1 练习16.2 练习26.3 练习3 1. 数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种和多种特定关系的数据元素的集合&…...
利用高德API获取整个城市的公交路线并可视化(五)
如果说我比别人看得更远些,那是因为我站在了巨人的肩上。——牛顿 参考:使用高德API获取公交线路数据,无需代码_实时公交api-CSDN博客 记录于2024年10月,因数据获取受网站更新策略等影响可能会失效,故记录写作时间,同时拾人牙慧,优化了后半部分数据直接导出为csv和shp…...
DNS:互联网域名系统的核心
什么是 DNS? DNS(Domain Name System,域名系统)是互联网的一项基础服务,它负责将人类容易记忆的域名(如 www.example.com)转换成计算机可以识别的 IP 地址(如 192.0.2.1)…...
小猿口算炸鱼脚本
目录 写在前面: 一、关于小猿口算: 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享: 补充:软件包下载 写在前面: 最近小猿口算已经被不少大学生攻占,小学生直呼有挂。原本是以为大学生都打着本…...
浅谈云原生--微服务、CICD、Serverless、服务网格
往期推荐 浅学React和JSX-CSDN博客 一文搞懂大数据流式计算引擎Flink【万字详解,史上最全】-CSDN博客 一文入门大数据准流式计算引擎Spark【万字详解,全网最新】_大数据 spark-CSDN博客 目录 1. 云原生概念和特点 2. 常见云模式 3. 云对外提供服务的…...
android app执行shell命令视频课程补充android 10/11适配-千里马android
(https://blog.csdn.net/learnframework/article/details/120103471) https://blog.csdn.net/learnframework/article/details/120103471 hi,有学员在学习跨进程通信专题课程时候,在实战app执行一个shell命令的项目时候,对课程本身的android …...
C++笔记-UTF8和UTF8-dom的区别
在文件格式上,UTF-8 和 UTF-8-BOM 是两种不同的编码方式,其中 UTF-8-BOM 包含字节顺序标记(BOM),而 UTF-8 则不包含。 UTF-8: UTF-8 是一种以字节为单位的可变长度字符编码,常用于以字节为单位…...
“探索Adobe Photoshop 2024:订阅方案、成本效益分析及在线替代品“
设计师们对Adobe Photoshop这款业界领先的图像编辑软件肯定不会陌生。如果你正考虑加入Photoshop的用户行列,可能会对其价格感到好奇。Photoshop的价值在于其强大的功能,而它的价格也反映了这一点。下面,我们就来详细了解一下Adobe Photoshop…...
网页复制粘贴助手,Chrome网页复制插件(谷歌浏览器复制插件)
一款解决网页限制复制问题的插件,当你遇到限制复制粘贴和右键的网页是不是很头痛?安装这个插件后,点下插件按钮就能解决了 碰到这种情况 也是非常头疼 chrome拓展-chrome插件-强制复制 当我们浏览网页的时候,看到感兴趣的内容就…...
【C++刷题】力扣-#118-杨辉三角
题目描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它正上方两个数的和。 示例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]]题解 这个问题…...
Linux下的环境变量
目录 1.引言 1.1bash的部分工作 1.2main函数也有参数 1.3我们可以通过给main函数传入不同的参数,让同一份代码实现不同的功能 1.4先认识一个环境变量PATH,帮助Linux找到指令程序的地址 2.环境变量 2.1环境变量的概念 2.2见见其他的环境变量 2…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
