thymeleaf基本语法

本文详细介绍了Thymeleaf模板引擎的基本语法,包括表单提交的th:action属性,对象遍历的th:each指令,Map和数组的输出方式,日期的显示,条件判断的th:if,以及模块的定义与引入th:fragment和th:include。

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

表单提交 th:action
<form th:action="@{/test/hello}" >
	<input th:type="text" th:name="id">
	<button>提交</button>
</form>
对象遍历 th:each
// user对象属性
Integer id;
String name;
String address;

model.addAttribute("users",userList);
<table>
	<tr>
		<td>下标</td>
		<td>编号</td>
		<td>姓名</td>
		<td>住址</td>
	</tr>
	<tr th:each="user,userStat:${users}">
		<td>
		<!--下标从0开始-->
		下标:<span th:text="${userStat.index}"></span>,
		</td>
		<td th:text="${user.id}"></td>
		<td th:text="${user.name}"></td>
		<td th:text="${user.address}"></td>
	</tr>
</table>
Map输出
dataMap.put("No","123");
dataMap.put("address","深圳");
model.addAttribute("dataMap",dataMap);
<div th:each="map,mapStat:${dataMap}">
	<!--No=123-->
	<div th:text="${map}"></div>  
	<!--key:No-->
	key:<span th:text="${mapStat.current.key}"></span><br/>
	<!--value:123-->
	value:<span th:text="${mapStat.current.value}"></span><br/>
</div>
数组输出
<div th:each="nm,nmStat:${names}">
	<!--1张三
		2李四
	-->
	<span th:text="${nmStat.count}"></span><span th:text="${nm}"></span>
</div>
日期输出
<span th:text="${#dates.format(now,'yyyy-MM-dd hh:ss:mm')}"></span>
条件判断 th:if
<span th:if="${(age>=18)}">成年了</span>
定义模块 th:fragment 引入模块 th:include
  1. 创建footer.html
<div id="C" th:fragment="ft" >
	关于我们<br/>
</div>
  1. 引入footer模块
<div id="A" th:include="footer::ft"></div>
<think>嗯,用户想了解Thymeleaf模板引擎的使用教程和示例,我需要根据提供的引用内容来组织回答。首先,引用[1]提到Thymeleaf是最全的教程,应该先介绍基本概念和特点。然后引用[2]和[3]提到了SpringBoot集成和使用步骤,应该分步骤讲解如何配置和创建模板。 接下来,用户可能需要具体的示例,比如如何在HTML中使用Thymeleaf的表达式,所以需要举一个简单的例子,比如显示服务器时间的例子。然后,根据引用中的内容,Thymeleaf支持多种模板类型,这点也很重要,需要列出来。 此外,语法部分引用[2]提到标准表达式和th属性,应该详细说明常用语法,比如变量表达式、选择表达式、链接表达式等,并给出对应的示例代码。最后,应用场景部分可以结合引用中的信息,说明Thymeleaf在Web开发中的常见用途。 还要注意用户可能关心的问题,比如如何集成到SpringBoot,如何处理表单数据,以及Thymeleaf的优势,比如自然模板和与Spring的兼容性。确保回答结构清晰,分步骤讲解,并包含代码示例,这样用户能更好地理解和应用。</think>### Thymeleaf 模板引擎使用教程与示例 #### 1. **Thymeleaf 简介** Thymeleaf 是一款用于 Web 和独立环境的现代服务器端 Java 模板引擎,支持 HTML、XML、JavaScript 等格式[^1]。其核心特点包括: - **自然模板**:可直接在浏览器中打开预览,无需后端服务。 - **与 Spring 生态无缝集成**:尤其适合 Spring Boot 项目[^3]。 - **丰富的表达式语法**:支持变量、条件、循环等操作[^2]。 --- #### 2. **基础使用步骤** ##### (1) 添加依赖(Spring Boot 项目) 在 `pom.xml` 中引入 Thymeleaf 依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 引用[3]指出,这是集成 Thymeleaf 的关键步骤。 ##### (2) 创建模板文件 在 `resources/templates` 目录下新建 HTML 文件(如 `hello.html`),并添加命名空间: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Thymeleaf 示例</title> </head> <body> <h1 th:text="${message}">默认文本</h1> </body> </html> ``` `th:text` 属性会替换默认文本为后端传递的值。 ##### (3) 编写 Controller 通过 Spring MVC 控制器传递数据到模板: ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "欢迎使用 Thymeleaf!"); return "hello"; } } ``` ##### (4) 访问结果 启动应用后访问 `http://localhost:8080/hello`,页面会显示动态渲染的文本。 --- #### 3. **常用语法示例** ##### (1) 变量表达式 ```html <p>用户名:<span th:text="${user.name}">未知</span></p> ``` `${}` 用于访问模型中的变量。 ##### (2) 条件判断 ```html <div th:if="${user.isAdmin}">管理员权限</div> <div th:unless="${user.isAdmin}">普通用户</div> ``` ##### (3) 循环遍历 ```html <ul> <li th:each="item : ${items}" th:text="${item}"></li> </ul> ``` ##### (4) 链接表达式 生成动态 URL: ```html <a th:href="@{/user/{id}(id=${userId})}">用户详情</a> ``` ##### (5) 表单绑定 处理表单提交: ```html <form th:action="@{/submit}" th:object="${formData}" method="post"> <input type="text" th:field="*{username}"> <button type="submit">提交</button> </form> ``` --- #### 4. **Thymeleaf 支持的模板类型** - HTML(最常用) - XML - JavaScript - CSS - 纯文本[^1] --- #### 5. **应用场景** - **动态页面渲染**:结合后端数据生成 HTML。 - **邮件模板**:通过 Thymeleaf 生成格式化的邮件内容。 - **静态资源处理**:动态加载 CSS/JS 文件路径。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值