1.Thymeleaf简介
Thymeleaf是一款优秀的面向Java的XML/XHTML/HTML5页面模板,其具有丰富的标签和函数。关于Thymeleaf表达式、标签和函数等内容,请读者自行到​​​官方网站​​参考学习,这里不再赘述。

2.引入依赖
新建一个SpringBoot工程,并在pom.xml文件中添加集成Thymeleaf所需要的dependency。

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

3.添加配置
在application.properties文件中添加如下配置信息。

############################################################
#
# MySQL配置
#
############################################################
### 连接信息
spring.datasource.url = jdbc:mysql://localhost:3306/mydb
### 用户名
spring.datasource.username = root
### 密码
spring.datasource.password = admin123
### 驱动
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

############################################################
#
# MyBatis配置
#
############################################################
### po类存放目录
mybatis.type-aliases-package = com.leichuangkj.thymeleaf.dao.po
### mapper(.xml)资源文件存放路径
mybatis.mapper-locations = classpath:mybatis/mapper/*.xml

############################################################
#
# Thymeleaf配置
#
############################################################
### 模板的模式,支持如:HTML、XML、TEXT、JAVASCRIPT等
spring.thymeleaf.mode = HTML5
### 编码
spring.thymeleaf.encoding = UTF-8
### 内容类别
spring.thymeleaf.servlet.content-type = text/html
### 开发配置为false,避免修改模板还要重启服务器
spring.thymeleaf.cache = false

4.dao层开发
首先在项目目录“/src/main/java/com/leichuangkj/thymeleaf”下新建“/dao/po”目录,并在po目录下新建User实体类,具体代码如下。

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
private Integer id;

private String name;

private String email;
}

然后在dao目录下新建mapper目录,并在mapper目录下新建UserMapper接口,具体代码如下。

@Repository
public interface UserMapper {
List<User> findAll();
}

最后在resource目录下新建“mybatis/mapper”目录,并在mapper目录下新建UserMapper.xml文件,具体代码如下。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.leichuangkj.thymeleaf.dao.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="com.leichuangkj.thymeleaf.dao.po.User">
<constructor>
<idArg column="id" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="name" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="email" javaType="java.lang.String" jdbcType="VARCHAR" />
</constructor>
</resultMap>
<select id="findAll" resultMap="BaseResultMap">
select id, name, email
from user
</select>
</mapper>

5.service层开发
在项目目录“/src/main/java/com/leichuangkj/thymeleaf”下新建service目录,并在service目录下新建IUser接口,具体代码如下。

public interface IUser {
List<User> findAll();
}

然后在service目录下新建impl目录,并在impl目录下新建UserImpl实现类,具体代码如下。

@Service
public class UserImpl implements IUser {
@Autowired
UserMapper userMapper;

@Override
public List<User> findAll() {
List<User> userList = userMapper.findAll();
return userList;
}
}

6.view层开发
在项目目录“/resources/templates”下新建user.html,具体代码如下。

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
</head>
<body>
<form action="" method="post">
<table width="100%" border=1>
<tr>
<td>序号</td>
<td>用户名</td>
<td>邮箱</td>
</tr>
<tr th:each="user:${users}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.email}"></td>
</tr>
</table>
</form>
</body>
</html>

7.controller层开发
在项目目录“/src/main/java/com/leichuangkj/thymeleaf”下新建controller目录,并在controller目录下新建UserController类,具体代码如下。

@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
UserImpl userImpl;

@RequestMapping(value = "/findAll",method = RequestMethod.GET)
public String findAll(Model model){
List<User> userList = userImpl.findAll();
model.addAttribute("users",userList);
return "user";
}
}

8.启动项目
在启动类ThymeleafApplication上添加注解“@MapperScan(basePackages = “com.leichuangkj.thymeleaf.dao.mapper”)”,然后启动项目。

@MapperScan(basePackages = "com.leichuangkj.thymeleaf.dao.mapper")
@SpringBootApplication
public class ThymeleafApplication {
public static void main(String[] args) {
SpringApplication.run(ThymeleafApplication.class, args);
}

}

9.测试

启动项目,然后在浏览器中请求“http://localhost:8080/user/findAll”,可以查询到相应的信息,测试结果如下图所示。

15.集成前端模板Thymeleaf_spring

10.工程目录结构

15.集成前端模板Thymeleaf_spring_02