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页面。记得在实际应用中,根据项目需求选择合适的语法和表达式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893036.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python爬虫】看电影还在用VIP?一个python代码让你实现电影自由!附源码

今日主题 如何用Python解析vip电影。 什么是vip电影&#xff1f; 这些vip电影啊&#xff0c;想要观看的话&#xff0c;必须充值会员&#xff0c;否则没法看。 比如这个&#xff1a; 这些vip电影解析后呢&#xff1f; 不需要会员&#xff0c;不需要登录&#xff0c;可以直接…

4、.Net 快速开发框架:DncZeus - 开源项目研究文章

DncZeus 是一个基于 ASP.NET Core 和 Vue.js 的前后端分离的通用后台管理系统框架&#xff0c;其愿景是成为一个易于使用且功能丰富的 .NET Core 通用后台权限管理模板系统基础框架。项目名称 "DncZeus" 由 "Dnc"(.NET Core 的缩写)和 "Zeus"(古…

STMicroelectronics 意法半导体芯片选型表

意法半导体作为全球知名的半导体厂商&#xff0c;其产品广泛应用于各个领域&#xff0c;从消费电子到工业控制&#xff0c;从汽车电子到通信设备&#xff0c;都能看到意法半导体芯片的身影。在电子硬件设计领域&#xff0c;芯片的选型至关重要。亿配芯城&#xff08;ICgoodFind…

SpringBoot+MyBatis+MySQL项目基础搭建

一、新建项目 1.1 新建springboot项目 新建项目 选择SpringBoot&#xff0c;填写基本信息&#xff0c;主要是JDK版本和项目构建方式&#xff0c;此处以JDK17和Maven举例。 1.2 引入依赖 选择SpringBoot版本&#xff0c;勾选Lombok&#xff0c;Spring Web&#xff0c;MyBa…

线性代数知识学习

1.标量 简单操作 长度 2.向量 parallel for all do 点乘、正交 3.矩阵 乘法&#xff08;矩阵乘以向量&#xff09; 4.范数 &#xfeff;&#xfeff;取決于如何衡量b和c的长度 &#xfeff;&#xfeff;常见范数 &#xfeff;&#xfeff;矩阵范数&#xff1a;最小的满足的…

小猿口算炸鱼脚本

目录 写在前面&#xff1a; 一、关于小猿口算&#xff1a; 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享&#xff1a; 补充&#xff1a;软件包下载 写在前面&#xff1a; 最近小猿口算已经被不少大学生攻占&#xff0c;小学生直呼有挂。原本是以为大学生都打着本…

【C语言】循环结构-for循环

循环结构&#xff1a;计算机最擅长的事情就是做简单重复的工作 通过控制循环变量&#xff0c;是否满足循环条件来调整循环次数。 for(初始化;循环条件;循环控制) {循环体; }#include <stdio.h> #include <math.h> /* 功能&#xff1a;循环结构&#xff08;for&…

[LeetCode] 695. 岛屿的最大面积

题目描述&#xff1a; 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff09;包围着。 岛…

Java 小游戏《超级马里奥》

文章目录 一、效果展示二、代码编写1. 素材准备2. 创建窗口类3. 创建常量类4. 创建动作类5. 创建关卡类6. 创建障碍物类7. 创建马里奥类8. 编写程序入口 一、效果展示 二、代码编写 1. 素材准备 首先创建一个基本的 java 项目&#xff0c;并将本游戏需要用到的图片素材 image…

大数据-174 Elasticsearch Query DSL - 全文检索 full-text query 匹配、短语、多字段 详细操作

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

推荐一个可以免费上传PDF产品图册的网站

​在数字化时代&#xff0c;企业将产品图册以PDF格式上传至网络&#xff0c;不仅便于客户浏览和下载&#xff0c;还能提升企业的专业形象。今天&#xff0c;就为您推荐一个可以免费上传PDF产品图册的网站——FLBOOK&#xff0c;轻松实现产品图册的在线展示。 1.注册登录&#x…

交通目标识别数据集YOLO 模型 ui界面✓图片数量15000,xml和txt标签都有 11类 交通道路车辆行人红黄绿数据集 红绿灯数据集 交通信号数据集

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000&#xff0c;xml和txt标签都有&#xff1b; ✓class&#xff1a;biker&#xff0c;car&#xff0c;pedestrian&#xff0c;trafficLight&#xff0c;trafficLight-Green&#xff0c;trafficLight-GreenLeft&#xff0c; tr…

调用第三方接口

目录 一、分析给出的接口文档 二、请求体格式之间的区别 三、示例代码 一、分析给出的接口文档 一般的接口文档包括以下几大部分&#xff1a; 1、请求URL&#xff1a;http://{ip}:{port}/api/ec/dev/message/sendCustomMessageSingle 2、请求方式&#xff1a;POST、GET等 3、…

3.C++经典实例-奇数还是偶数

要判断一个数是奇数还是偶数&#xff0c;只需要判断这个数是否能被2整除即可&#xff0c;如果要判断是否能整除&#xff0c;则要判断当前数除以2的余数是否为0&#xff0c;在C中&#xff0c;余数&#xff0c;使用%号&#xff0c;因此&#xff0c;程序为&#xff1a; #include …

缓存常见问题:缓存穿透、雪崩、击穿及解决方案分析

1. 什么是缓存穿透&#xff0c;怎么解决&#xff1f; 缓存穿透是指用户请求的数据在缓存中不存在即没有命中&#xff0c;同时在数据库中也不存在&#xff0c;导致用户每次请求该数据都要去数据库中查询一遍。如果有恶意攻击者不断请求系统中不存在的数据&#xff0c;会导致短时…

C++初阶学习第七弹——string的模拟实现

C初阶学习第六弹------标准库中的string类_c语言返回string-CSDN博客 通过上篇我们已经学习到了string类的基本使用&#xff0c;这里我们就试着模拟实现一些&#xff0c;我们主要实现一些常用到的函数。 目录 一、string类的构造 二、string类的拷贝构造 三、string类的析构函…

第十四届单片机嵌入式蓝桥杯

一、CubeMx配置 &#xff08;1&#xff09;LED配置 &#xff08;1&#xff09;LED灯里面用到了SN74HC573ADWR锁存器&#xff0c;这个锁存器有一个LE引脚,这个是我们芯片的锁存引脚&#xff08;使能引脚&#xff09;&#xff0c;由PD2这个端口来控制的 &#xff08;2&#xff…

13图书归还-云图书管理系统(Vue3+Spring Boot+element plus)

目录 1 接口地址2 后台代码RecordControllerBookController 3 view/books/BookRecordsVue中前端框架搭建4 api/record.js文件写查询用户借阅记录的接口代码5 api/book.js中写归还图书、查询当前借阅图书接口代码6 BookRecordsVue中导入接口函数&#xff0c;并调用7 运行效果 1 …

C++/初识C++

目录 一、前言 二、正文 1C语言第一个程序&#xff1a; 1.1C的第一个程序&#xff1a; 2.命名空间 2.1 namespace的价值 2.2namespace的定义 2.3namespace的正常使用 3.C输出和输入 三、结言 一、前言 点来不及悼念C语言&#xff0c;接下来出场的是新的语言C。不同于C…

【数据采集工具】Sqoop从入门到面试学习总结

国科大学习生活&#xff08;期末复习资料、课程大作业解析、大厂实习经验心得等&#xff09;: 文章专栏&#xff08;点击跳转&#xff09; 大数据开发学习文档&#xff08;分布式文件系统的实现&#xff0c;大数据生态圈学习文档等&#xff09;: 文章专栏&#xff08;点击跳转&…