下面是“Java基础之Thymeleaf的简单使用”的完整攻略。
1. 什么是Thymeleaf
Thymeleaf是一种服务器端Java模板引擎,它能够处理HTML、XML、JavaScript、CSS、文本等模板。与其他模板引擎相比,Thymeleaf有以下特点:
- 语法简单且易于学习;
- 支持自然模板:模板可以在浏览器中预览,而不需要部署到客户端;
- 支持表达式、片段、逻辑、迭代等功能,使模板的编写更加灵活。
2. 基本使用
2.1 添加依赖
在使用Thymeleaf之前,需要在项目中添加Thymeleaf的依赖。如果使用Maven管理项目,可以在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
如果不使用Spring Boot,则需要添加以下依赖:
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
2.2 创建模板文件
Thymeleaf的模板文件遵循HTML5规范。在模板文件中可以添加Thymeleaf语法,实现对模板的动态处理。
例如,我们可以创建一个简单的HTML模板文件index.html
,并在其中添加Thymeleaf的语法:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymeleaf Example</title>
</head>
<body>
<h1 th:text="${title}">Hello World</h1>
</body>
</html>
这个模板文件中,我们使用了Thymeleaf的语法${title}
,表示在模板渲染时,从上下文中读取名为title
的变量并替换到该位置。
2.3 创建控制器
在创建模板文件后,需要创建控制器来处理请求,并将数据传递给模板进行渲染。
例如,我们可以创建一个简单的控制器ThymeleafController.java
,并在其中添加以下代码:
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ThymeleafController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(ModelMap model) {
model.addAttribute("title", "Thymeleaf Example");
return "index";
}
}
在该控制器中,我们使用了注解@Controller
来告诉Spring该类是一个控制器,使用注解@RequestMapping
来指定请求映射路径。在index
方法中,我们使用了ModelMap
对象来设置模板渲染时所需的变量title
的值,然后返回字符串"index",表示使用名为index.html
的模板文件进行渲染。
2.4 启动应用程序
将应用程序打包成可执行jar包,并使用以下命令启动应用程序:
java -jar demo.jar
在应用程序启动成功后,访问URLhttp://localhost:8080
,应该可以看到浏览器中显示出"Thymeleaf Example"的文本。
3. Thymeleaf语法示例
3.1 变量表达式
变量表达式${}
表示从上下文中读取一个变量的值。
例如,如果我们在模板文件中添加以下代码:
<p th:text="${message}">Hello World</p>
并在控制器中添加以下代码:
model.addAttribute("message", "Hello Thymeleaf!");
则在渲染模板时,变量${message}
会被替换为"Hello Thymeleaf!"。最终渲染出的HTML代码为:
<p>Hello Thymeleaf!</p>
3.2 循环遍历
Thymeleaf支持使用th:each
语法来循环遍历集合或数组。
例如,如果我们在模板文件中添加以下代码:
<ul>
<li th:each="name : ${names}" th:text="${name}">Name</li>
</ul>
并在控制器中添加以下代码:
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
model.addAttribute("names", names);
则在渲染模板时,Thymeleaf会循环遍历names集合,并将集合中的每个元素赋值给变量name
,然后将每个元素的值渲染为一个<li>
元素。最终渲染出的HTML代码为:
<ul>
<li>Alice</li>
<li>Bob</li>
<li>Charlie</li>
</ul>
4. 总结
本文介绍了Thymeleaf的基本使用,并提供了两个Thymeleaf语法的示例。在实际开发中,Thymeleaf还有很多其他的语法和功能,需要根据具体场景进行使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础之Thymeleaf的简单使用 - Python技术站