Thymeleaf的基本使用

本文介绍了Thymeleaf的使用方法,包括字符串拼接、运算符使用、条件判断、for循环、内联js等,还提及了Thymeleaf提供的内置对象,如日期、数字、字符串格式化等对象。此外,作者分享了Java开发学习资料,可扫码或点击传送门领取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候可能只需对一大段文字中的某一处或全部进行替换,可以通过字符串拼接或替换操作完成。

description

字符串拼接还有另外一种简洁的写法

这种形式限制比较多,|…|中只能包含变量表达式${…},不能包含其他常量,条件表达式等。

2、运算符

在表达式中可以使用各类算术运算符,例如+、-、*、/、%。

th:with=“isEven=(${prodStat.count} % 2 == 0)”

逻辑运算符>、<、<=、>=、==、!=都可以使用,唯一需要注意的是,使用<>是应用它的HTML转义符。

th:if=“${prodStat.count} > 1”

th:text=“'Execution mode is '+((${execMode} == ‘dev’) ? ‘Development’: ‘Production’)”

3、条件判断

Thymeleaf中使用th:if和th:unless属性进行条件判断,标签只有在th:if中的条件成立时才显示,th:unless与th:if恰好相反,只有表达式中的条件不成立是,才会显示器内容。

Login1

Login2

Thymeleaf同样支持多路选中Switch结构,默认属性default可以用*表示

user is an admin

user is a manager

user is some other thing

4、for 循环

Thymeleaf中循环变量集合使用th:each标签

th:each属于用于迭代循环,迭代对象可以是java.util.List、java.util.Map或数组等,语法如下。

th:each=“obj, iterStat:${objList}”

下面是一个简单的循环。

1 Mark Otto @mdo index

iterStat称作状态变量,属性有:

  • index:当前迭代对象的 index(从0开始计算)

  • count: 当前迭代对象的 index(从1开始计算)

  • size:被迭代对象的大小

  • current:当前迭代变量

  • even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算)

  • first:布尔值,当前循环是否是第一个

  • last:布尔值,当前循环是否是最后一个

5、内联 js

内联文本:[[…]] 内联文本的表示方式,使用时,必须先用th:inline="text/javascript/none"激活,th:inline可以在父级标签内使用,甚至作为 body 的标签。内联文本尽管比th:text的代码少,不利于原型显示。

内置对象

Web下面中经常会传递一些数据,例如String类型的列表、日期对象和数值,这些在实际应用开发中应用非常广泛,所以Thymeleaf还提供了很多内置对象,可以通过#直接访问。

【注意】:内置对象一般都以s结尾,如dates,lists,numbers等。在使用内置对象时需要在对象名前加#号。

在Thymeleaf中的内置对象有以下这些。

  • #dates:日期格式化内置对象,具体方法可以参照java.util.Date。

  • #calendars:类似于#dates,但是是java.util.Calendar类的方法。

  • #numbers:数字格式化。

  • #strings:字符串格式化,具体方法可以参照java.lang.String,如startsWith,contains等。

  • #objects:参照java.lang.Object。

  • #bools:判断Boolean类型的工具。

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

https://i-blog.csdnimg.cn/blog_migrate/705123f5943aea4c3a3de78f1251167a.jpeg" alt=“img” style=“zoom: 33%;” />

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

[外链图片转存中…(img-N2pPFseG-1711461647880)]

[外链图片转存中…(img-JUqkVs4n-1711461647880)]

需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

<think>嗯,用户想了解Spring Boot和Thymeleaf基本配置与使用。好的,我需要先理清楚这两个技术的基本概念以及它们如何结合使用。首先,Spring Boot是一个用于简化Spring应用开发的框架,可以快速搭建项目,而Thymeleaf是一个服务器端的Java模板引擎,适合用于Web应用中的视图层。 首先,用户可能需要知道如何创建一个Spring Boot项目并集成Thymeleaf。我应该从项目创建开始,比如使用Spring Initializr,添加Thymeleaf依赖。然后介绍配置文件,比如application.properties中的相关设置,比如关闭缓存,这样开发时修改模板不用重启。 接下来是基本使用步骤,比如创建Controller,编写Thymeleaf模板,如何传递数据,以及常用的语法。比如在HTML中使用th:text,表单处理,迭代循环等。可能需要给出代码示例,这样用户更容易理解。 还要注意Thymeleaf的默认目录是classpath:/templates/,所以需要说明HTML文件应该放在哪里。另外,静态资源如CSS、JS通常放在static目录下,这也是需要提到的点。 用户可能遇到的问题比如模板不生效,或者静态资源无法加载,这时候可能需要检查配置是否正确,路径是否正确。另外,Thymeleaf的语法可能有些用户不熟悉,需要简单举例说明常用标签和表达式。 可能还需要提到Thymeleaf的布局功能,比如使用th:fragment和th:replace来复用页面片段,这对实际项目开发很有帮助,但如果是基本配置与使用,可能不需要深入,简单提一下或者作为扩展内容。 还有,是否需要涉及MVC结构?比如Controller到View的数据传递,Model的使用,表单绑定等。这些都是基本使用中常见的部分,应该涵盖。 总结一下,回答的结构应该是:先介绍Spring Boot和Thymeleaf,然后创建项目,添加依赖,配置,接着是Controller和模板的编写,数据传递,常用语法,最后可能给出一个简单示例和常见问题。确保步骤清晰,代码示例正确,并且解释到位,避免用户在实际操作时遇到障碍。</think>以下是 Spring Boot 整合 Thymeleaf基本配置与使用指南,分步骤说明: --- ### **一、环境准备** 1. **创建 Spring Boot 项目** 通过 [Spring Initializr](https://start.spring.io/) 创建项目,勾选: - **Spring Web**(Web 支持) - **Thymeleaf**(模板引擎依赖) 2. **项目结构** 生成的标准目录结构: ``` src ├─main │ ├─java │ │ └─com/example/demo │ │ ├─controller │ │ └─DemoApplication.java │ └─resources │ ├─static # 存放静态资源(CSS/JS/图片) │ ├─templates # 存放 Thymeleaf 模板 │ └─application.properties ``` --- ### **二、基础配置** 在 `application.properties` 中添加: ```properties # 开启模板缓存(生产环境建议true,开发时设为false) spring.thymeleaf.cache=false # 模板编码 spring.thymeleaf.encoding=UTF-8 # 模板后缀(默认.html) spring.thymeleaf.suffix=.html # 模板路径(默认classpath:/templates/) spring.thymeleaf.prefix=classpath:/templates/ ``` --- ### **三、基础使用** #### 1. **编写 Controller** ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { // 向模板传递数据 model.addAttribute("message", "Hello Thymeleaf!"); model.addAttribute("list", Arrays.asList("Java", "Python", "C++")); return "hello"; // 对应 templates/hello.html } } ``` #### 2. **创建 Thymeleaf 模板(hello.html)** ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Thymeleaf Demo</title> </head> <body> <!-- 显示普通文本 --> <h1 th:text="${message}"></h1> <!-- 条件判断 --> <div th:if="${not #lists.isEmpty(list)}"> <!-- 循环遍历 --> <ul> <li th:each="item : ${list}" th:text="${item}"></li> </ul> </div> <!-- 链接处理(自动生成上下文路径) --> <a th:href="@{/home}">返回首页</a> </body> </html> ``` --- ### **四、常用语法** #### 1. **变量表达式 `${}`** ```html <p th:text="${user.name}"></p> ``` #### 2. **链接表达式 `@{}`** ```html <link th:href="@{/css/style.css}" rel="stylesheet"> ``` #### 3. **条件判断 `th:if` / `th:unless`** ```html <div th:if="${user.isAdmin}">管理员权限</div> ``` #### 4. **循环遍历 `th:each`** ```html <tr th:each="user : ${users}"> <td th:text="${user.id}"></td> </tr> ``` #### 5. **表单绑定** Controller: ```java @PostMapping("/submit") public String submitForm(@ModelAttribute User user) { // 处理表单数据 return "result"; } ``` 模板: ```html <form th:action="@{/submit}" method="post"> <input type="text" th:name="username"> <button type="submit">提交</button> </form> ``` --- ### **五、静态资源处理** 将 CSS/JS 文件放在 `resources/static` 目录下: ```html <!-- 引用静态资源 --> <script th:src="@{/js/main.js}"></script> <link th:href="@{/css/style.css}" rel="stylesheet"> ``` --- ### **六、布局模板(进阶)** 通过 `th:fragment` 和 `th:replace` 实现页面复用: 1. **定义公共片段(common.html)** ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <th:block th:fragment="head"> <meta charset="UTF-8"> <title>公共标题</title> </th:block> </head> </html> ``` 2. **引用片段** ```html <head th:replace="common :: head"></head> ``` --- ### **七、常见问题** 1. **模板不生效** - 检查文件是否放在 `templates` 目录。 - 确保 Controller 返回的视图名与模板文件名一致。 2. **静态资源404** - 确认文件路径正确(如 `static/css/style.css` 对应 `@{/css/style.css}`)。 3. **Thymeleaf 语法不解析** - 检查 HTML 是否添加命名空间:`xmlns:th="http://www.thymeleaf.org"`。 --- 通过以上步骤,即可快速上手 Spring Boot + Thymeleaf 的基础开发!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值