Spring Boot 中的模板引擎是什么,如何使用

文章介绍了SpringBoot中Thymeleaf的配置,如添加依赖、配置模板目录和后缀,以及如何在模板文件中使用Thymeleaf表达式。通过创建控制器和模板文件,展示了如何传递数据并动态生成HTML页面。Thymeleaf的语法如变量表达式、选择表达式、URL表达式和条件判断也被提及。
摘要由CSDN通过智能技术生成

Spring Boot 中的模板引擎是什么,如何使用

在 Web 应用程序中,模板引擎是一种用于动态生成 HTML、XML、JSON 等文档的工具。Spring Boot 内置了多种常见的模板引擎,例如 Thymeleaf、Freemarker、Velocity 等,让我们可以轻松地创建动态网页。

本文将介绍 Spring Boot 中常用的模板引擎 Thymeleaf 的使用方法,包括如何配置、如何使用模板、如何传递数据等。

在这里插入图片描述

Thymeleaf 的配置

在 Spring Boot 中使用 Thymeleaf 非常简单,只需要在项目的依赖中添加以下两个依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator-core</artifactId>
</dependency>

上面的第一个依赖是 Spring Boot 的 Thymeleaf 启动器,它包含了 Thymeleaf 的必需依赖,并自动配置了 Thymeleaf 的视图解析器。第二个依赖是 WebJars,它是一个用于管理 Web 前端库的工具,我们可以使用它来引入 Thymeleaf 的 HTML 标签库。

在添加了依赖之后,我们还需要在配置文件中添加以下配置:

# 开启 Thymeleaf 缓存
spring.thymeleaf.cache=true

# Thymeleaf 模板所在的目录,默认为 classpath:/templates/
spring.thymeleaf.prefix=classpath:/templates/

# Thymeleaf 模板文件的后缀,默认为 .html
spring.thymeleaf.suffix=.html

# Thymeleaf 模板文件的编码,默认为 UTF-8
spring.thymeleaf.encoding=UTF-8

# 启用 Thymeleaf 的 HTML 标签库
spring.thymeleaf.mode=HTML

以上配置中,spring.thymeleaf.cache 属性用于开启 Thymeleaf 的缓存,以提高性能。spring.thymeleaf.prefix 属性用于指定 Thymeleaf 模板所在的目录,默认为 classpath:/templates/spring.thymeleaf.suffix 属性用于指定 Thymeleaf 模板文件的后缀,默认为 .htmlspring.thymeleaf.encoding 属性用于指定 Thymeleaf 模板文件的编码,默认为 UTF-8。spring.thymeleaf.mode 属性用于启用 Thymeleaf 的 HTML 标签库。

在完成了上述配置之后,我们就可以开始使用 Thymeleaf 了。

Thymeleaf 的使用

创建模板文件

首先,我们需要在 src/main/resources/templates 目录下创建一个 Thymeleaf 模板文件。例如,我们创建一个名为 index.html 的模板文件,文件内容如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf Demo</title>
</head>
<body>
    <h1 th:text="${message}">Hello World!</h1>
</body>
</html>

在上面的模板文件中,我们使用了 Thymeleaf 的 th:text 属性来动态显示消息。${message} 表示从控制器传递过来的数据,它将会被替换为实际的消息内容。

创建控制器

接下来,我们需要创建一个控制器来处理请求,并将数据传递给模板。例如,我们创建一个名为 DemoController 的控制器,代码如下:

@Controller
public class DemoController {
    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("message", "Hello Thymeleaf!");
        return "index";
    }
}

在上面的控制器中,我们使用了 @Controller 注解来定义一个控制器,它包含了一个 index 方法,用于处理根路径的 GET 请求。在 index 方法中,我们使用了 Model 对象来传递数据给模板,将一个名为 message 的属性设置为 Hello Thymeleaf!

运行程序

最后,我们需要启动程序并访问根路径,以查看 Thymeleaf 的效果。可以使用 Spring Boot 提供的内置 Web 服务器来运行程序,例如使用以下命令:

mvn spring-boot:run

启动成功后,在浏览器中访问 http://localhost:8080/,将会看到以下内容:

Hello Thymeleaf!

这证明 Thymeleaf 已经成功地将模板和数据结合起来,动态生成了 HTML 页面。

Thymeleaf 的语法

Thymeleaf 的语法非常简单,它提供了类似于 JSP 的标签和表达式。以下是一些常用的 Thymeleaf 语法:

变量表达式

使用 ${} 语法来表示变量表达式,例如:

<h1 th:text="${message}">Hello World!</h1>

在上面的例子中,${message} 表示从控制器传递过来的数据。

选择表达式

使用 *{} 语法来表示选择表达式,例如:

<input type="text" th:value="*{user.name}" />

在上面的例子中,*{user.name} 表示一个名为 user 的对象的 name 属性。

URL 表达式

使用 @{} 语法来表示 URL 表达式,例如:

<a th:href="@{/users/{id}(id=${user.id})}">Edit</a>

在上面的例子中,@{/users/{id}(id=${user.id})} 表示一个动态 URL,其中 {id} 表示一个参数,${user.id} 表示参数的值。

条件判断

使用 th:ifth:unless 来进行条件判断,例如:

<div th:if="${user.isAdmin}">
    <p>Welcome, administrator!</p>
</div>
<div th:unless="${user.isAdmin}">
    <p>Welcome, user!</p>
</div>

在上面的例子中,th:if 表示当表达式为真时显示,th:unless 表示当表达式为假时显示。

循环遍历

使用 th:each 来进行循环遍历,例如:

<ul>
    <li th:each="user : ${users}" th:text="${user.name}"></li>
</ul>

在上面的例子中,th:each 表示对 ${users} 集合进行遍历,将每个元素赋值给 user 变量,然后显示 user.name 属性。

更多的 Thymeleaf 语法可以参考官方文档:https://www.thymeleaf.org/documentation.html

总结

本文介绍了 Spring Boot 中常用的模板引擎 Thymeleaf 的使用方法,包括如何配置、如何使用模板、如何传递数据等。Thymeleaf 是一款功能强大、易于上手的模板引擎,它提供了简单的语法和丰富的标签库,让我们可以轻松地创建动态网页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java徐师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值