Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在其他语言下也有模板引擎,除了thymeleaf之外还有Velocity、FreeMarker等模板引擎,功能类似。
Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。使用thymeleaf创建的html模板可以在浏览器里面直接打开(展示静态数据),这有利于前后端分离。需要注意的是thymeleaf不是spring旗下的。
在pom.xml中添加以下依赖,也可以使用idea在创建spring boot 项目的时候勾选thymeleaf
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
# thymeleaf模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
# 热部署文件,页面不存在缓存,及时更新
spring.thymeleaf.cahe=false
用户实体存储数据,实现内容就是在控制层进行封装数据通过SpringMVC的ModelAndView进行视图转发至Thymeleaf 引擎模板位置;
/**
* @author 小生
*/
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
处理请求然后封装数据,视图,渲染
/**
* @author 小生
*/
@Controller
public class UserController {
@GetMapping("/user")
public String getUsers(Model model) {
ArrayList<User> userList = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
User user = new User();
user.setId(Long.valueOf(i));
user.setAge(18);
user.setName("小生");
userList.add(user);
}
model.addAttribute("users", userList);
return "user";
}
}
user.html 文件位置在resource/templates/ 下
<!DOCTYPE html>
<!-- 将默认的头 <html lang="en"> 引入thymeleaf -->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>学习Thymeleaf</title>
</head>
<body>
<table border="1px">
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
</tr>
<tr th:each="user: ${users}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.age}"></td>
</tr>
</table>
</body>
</html>
启动工程之后输入Controller拦截的地址查看效果展示