模板引擎技术是一种用于生成动态网页的技术,通常用于将服务端提供的数据与模板文件结合来生成HTML、XML、JSON等格式的输出,主要的目的是实现前后端代码的分离,提高代码的可维护性和可复用性。
模板引擎的基本工作原理
??模板引擎技术通常遵循如下的执行流程
- 加载模板:从文件或内存中加载模板文件。
- 绑定数据:将动态数据插入到模板中的占位符。
- 渲染输出:生成最终的HTML或其他格式的文本,返回给客户端或存储。
??如下所示,假设我们有一个HTML文件作为模板。
欢迎
Hello, {{username}}!
??然后想要将username="Alice"数据渲染到模板中,生成如下的信息。
欢迎
Hello, Alice!
??通过模板引擎的方式就可以实现上面的操作,下面我们就来通过Thymeleaf模板引擎技术来演示模板引擎的使用。
Spring Boot3中如何整合Thymeleaf模板
引入Thymeleaf依赖
??在Spring Boot3中依赖了Spring Framework 6,默认就提供了Thymeleaf的支持,只需要再POM文件中去添加相关的配置依赖即可。
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
配置Thymeleaf
??在SpringBoot3中默认提供了Thymeleaf的配置,通常不需要额外的配置,但是如果在某些场景下需要自定义的配置的话,可以在application.properties或application.yml中进行调整,如下所示。
- 模板文件路径:src/main/resources/templates/
- 模板文件后缀:.html
- 缓存:默认开启
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
mode: HTML5
cache: false
encoding: UTF-8
创建Controller
??接下来,我们创建一个Controller类来测试模板引擎的渲染和使用,如下所示,创建HelloController类,然后在其中返回Thymeleaf模板视图,这里可以简单的理解一下,这个返回的模板视图其实就是一个通过模板引擎渲染好数据的HTML页面。
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello, Thymeleaf in Spring Boot 3!");
return "hello"; // 返回的是templates目录下的hello.html
}
}
创建Thymeleaf模板
??至于上面提到的数据是如何渲染的,就是通过如下的这个模板进行渲染。我们可以在src/main/resources/templates/目录下新建 hello.html 文件,来提供渲染数据的模板。
Thymeleaf Demo
默认消息
??在上面代码中的th:text="${message}"就是Thymeleaf模板引擎的语法,表示从Model 中获取 message 变量并显示,如下所示,Thymeleaf模板引擎中,除了提供上门的这些语法之外还提供了如下的一些语法操作。
条件判断
Welcome Message
循环遍历
链接
Go to Hello Page
总结
??模板引擎技术作为Web开发中的一个重要的技术实现,选择合适的模板引擎技术可以有利于提高开发的效率,优化用户体验。在实际开发中,我们可以根据项目需求来选择合适的服务端或者是客户端的渲染方式,在Spring Boot3中最佳的实现方式就是Thymeleaf技术,而在现代前后端分离的项目中,则是选择了一些前端的渲染引擎技术,例如React、Vue等前端模板引擎。
本文暂时没有评论,来添加一个吧(●'◡'●)