Spring Boot 整合 Thymeleaf
时间:2022-07-22
本文章向大家介绍Spring Boot 整合 Thymeleaf,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
目录
- 1. 什么是 Thymeleaf
- 2. 整合过程
- 2.1 添加 Thymeleaf 依赖
- 2.2 编写实体类和 Controller
- 2.3 创建 Thymeleaf 模板
- 2.4 测试
- 3. 注意事项
1. 什么是 Thymeleaf
- Thymeleaf 是新一代的 Java 模板引擎,类似于 Velocity、FreeMarker 等传统引擎,其语言和 HTML 很接近,而且扩展性更高;
- Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中,并将 HTML 在浏览器中正确显示。同时能够作为静态引擎,让开发成员之间更方便协作开发;
- Spring Boot 官方推荐使用模板,而且 Spring Boot 也为 Thymeleaf 提供了完整的自动化 配置解决方案;
- Thymeleaf 使用教程请戳 Tutorial: Using Thymeleaf[1],配合 Spring 使用的教程请戳 Tutorial: Thymeleaf + Spring[2]。
2. 整合过程
2.1 添加 Thymeleaf 依赖
添加 Thymeleaf 依赖有两种方式:
- 在新建项目时添加,在
Templeate Engines
中勾选 Thymeleaf;
- 对于未添加 Thymeleaf 依赖的项目,直接在
pom.xml
中手动添加依赖即可;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.2 编写实体类和 Controller
- 新建实体类
User
package com.cunyu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
/**
* @author : cunyu
* @version : 1.0
* @className : Author
* @date : 2020/7/29 16:20
* @description : User 实体类
*/
@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int age;
private String name;
private String email;
}
- 编写 Controller
package com.cunyu.controller;
import com.cunyu.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* @author : cunyu
* @version : 1.0
* @className : UserController
* @date : 2020/7/29 16:22
* @description : UserController
*/
@Controller
public class UserController {
// 访问 ip:port/index
@GetMapping("/index")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView();
// 设置跳转的视图
modelAndView.setViewName("index");
modelAndView.addObject("title", "Thymeleaf 使用");
modelAndView.addObject("desc", "Spring Boot 整合 Thymeleaf");
User author = new User(25, "村雨遥", "747731461@qq.com");
modelAndView.addObject("author", author);
return modelAndView;
}
}
2.3 创建 Thymeleaf 模板
第 2.3 中,设置了跳转的视图为 index
,所以我们需要在 src/main/resources/templates
中创建 index.html
;
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title th:text="${title}"></title>
</head>
<body>
<h1 th:text="${desc}" th:align="center"></h1>
<h2 th:align="center">=====作者信息=====</h2>
<p th:text="${author?.name}"></p>
<p th:text="${author?.age}"></p>
<p th:text="${author?.email}"></p>
</body>
</html>
2.4 测试
启动项目,然后在浏览器中访问 http://localhost:8080/index
,如果出现下图中的信息,说明整合成功。
3. 注意事项
为了方便使用,我们在使用 Thymeleaf 模板时,可以添加一些自己的配置;
# thymelea模板配置
# 设置模板文件存放位置
spring.thymeleaf.prefix=classpath:/templates/
# 设置模板后缀
spring.thymeleaf.suffix=.html
# 语法严格限制
spring.thymeleaf.mode=HTML5
# 编码格式
spring.thymeleaf.encoding=UTF-8
# 热部署,每次修改静态页面都不用重启就可以生效,默认为 true
spring.thymeleaf.cache=false
参考资料
[1]Tutorial: Using Thymeleaf: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
[2]Tutorial: Thymeleaf + Spring: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- LeetCode93|数值的整数次方
- LeetCode92|排序数组
- 缓存 | 从本地缓存到分布式缓存, Guava, Caffeine, Memcached, Redis
- WebView三问—B站真题
- C++核心准则T.140:为所有可能重用的操作命名
- Service三问
- 事件分发机制三问
- C++核心准则T.141:如果你需要只在一个地方使用的简单的函数对象,使用无名的lambda表达式
- 基于DOM的XML文件解析类
- C++核心准则T.143:避免无意中编写非通用代码
- XML文件解析实践(DOM解析)
- golang 多协程的同步方法总结
- C++核心准则T.144:不要特化函数模板
- 三千字带你搞懂XXL-JOB任务调度平台
- Python-科学计算-pandas-14-df按行按列进行转换