百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

详细介绍一下Spring Boot3中如何整合Thymeleaf模板引擎?

zhezhongyun 2025-02-26 14:36 62 浏览

模板引擎技术是一种用于生成动态网页的技术,通常用于将服务端提供的数据与模板文件结合来生成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.propertiesapplication.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等前端模板引擎。

相关推荐

perl基础——循环控制_principle循环

在编程中,我们往往需要进行不同情况的判断,选择,重复操作。这些时候我们需要对简单语句来添加循环控制变量或者命令。if/unless我们需要在满足特定条件下再执行的语句,可以通过if/unle...

CHAPTER 2 The Antechamber of M de Treville 第二章 特雷维尔先生的前厅

CHAPTER1TheThreePresentsofD'ArtagnantheElderCHAPTER2TheAntechamber...

CHAPTER 5 The King'S Musketeers and the Cardinal'S Guards 第五章 国王的火枪手和红衣主教的卫士

CHAPTER3TheAudienceCHAPTER5TheKing'SMusketeersandtheCardinal'SGuard...

CHAPTER 3 The Audience 第三章 接见

CHAPTER3TheAudienceCHAPTER3TheAudience第三章接见M.DeTrévillewasatt...

别搞印象流!数据说明谁才是外线防守第一人!

来源:Reddit译者:@assholeeric编辑:伯伦WhoarethebestperimeterdefendersintheNBA?Here'sagraphofStea...

V-Day commemorations prove anti-China claims hollow

People'sLiberationArmyhonorguardstakepartinthemilitaryparademarkingthe80thanniversary...

EasyPoi使用_easypoi api

EasyPoi的主要特点:1.设计精巧,使用简单2.接口丰富,扩展简单3.默认值多,writelessdomore4.springmvc支持,web导出可以简单明了使用1.easypoi...

关于Oracle数据库12c 新特性总结_oracle数据库12514

概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...

【开发者成长】JAVA 线上故障排查完整套路!

线上故障主要会包括CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题...

使用 Python 向多个地址发送电子邮件

在本文中,我们将演示如何使用Python编程语言向使用不同电子邮件地址的不同收件人发送电子邮件。具体来说,我们将向许多不同的人发送电子邮件。使用Python向多个地址发送电子邮件Python...

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

linux常用系统命令_linux操作系统常用命令

系统信息arch显示机器的处理器架构dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/s...

小白入门必知必会-PostgreSQL-15.2源码编译安装

一PostgreSQL编译安装1.1下载源码包在PostgreSQL官方主页https://www.postgresql.org/ftp/source/下载区选择所需格式的源码包下载。cd/we...

Linux操作系统之常用命令_linux系统常用命令详解

Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...

linux网络命名空间简介_linux 网络相关命令

此篇会以例子的方式介绍下linux网络命名空间。此例中会创建两个networknamespace:nsa、nsb,一个网桥bridge0,nsa、nsb中添加网络设备veth,网络设备间...