最近接触了一个用Thymeleaf的项目,顺便了解一下。
简介
Thymeleaf在服务端渲染(SSR)中是个不错的技术选项,但目前行业主流趋势是前后端分离架构,用React和Vue这样的现代化前端框架,有更好的交互体验、开发效率和可维护性。
下面简单介绍了一下Thymeleaf,有兴趣可以简单了解:
Thymeleaf官网的定义:
a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text.
一款现代化的服务端 Java 模板引擎,适用于 Web 和独立环境,能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。
模板引擎
这里提到的模板引擎是什么呢?
举一个简单的例子,假设我们的系统需要给用户发送验证码短信,我们就需要制作一个模板:
您的验证码为:${code},该验证码5分钟内有效,请勿泄露!
系统发送短信时,将生成的验证码替换模板中${code}的部分,从而生成完整短信发送给用户。
将模板和动态数据结合,得到生成最终结果的过程,就是模板引擎的核心功能。
而Thymeleaf就是一个将页面模板和数据整合的模板引擎。
举例
下面是一个简单的Thymeleaf模板页面。其中的th:text="${welcomeText}就是Thymeleaf语法,表示标签中的内容需要使用变量welcomeText替换。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf模板</title>
</head>
<body>
<div th:text="${welcomeText}">Welcome</div>
</body>
</html>
在后台代码中,设置welcomeText变量的值,渲染页面时会Thymeleaf对模板页面进行变量替换。
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class UrlController {
@GetMapping("index")
public String getIndex(Model model) {
model.addAttribute("welcomeText","欢迎来到thymeleaf");
return "index";
}
}
上面是一个简单的例子,Thymeleaf还有很多语法规则。
Thymeleaf新的项目已经很少会遇到,简单了解一下就可以,真的有需要再学习具体语法就行。
相关资料: