📜  Spring Boot – Thymeleaf 是如何工作的?(1)

📅  最后修改于: 2023-12-03 15:20:12.753000             🧑  作者: Mango

Spring Boot Thymeleaf 教程

简介

Thymeleaf 是一个服务器端 Java 模板引擎。它可以通过 HTML、XML、JS、CSS 甚至文本文件生成页面。在 Spring Boot 中,Thymeleaf 是一个可选的视图技术,它允许开发人员使用标准的 HTML 模板来快速构建 web 应用,同时可以轻松集成到我们的项目中。

本教程将介绍 Spring Boot 中如何使用 Thymeleaf 来处理视图。

环境要求
  • JDK 1.8 或更高版本
  • Spring Boot 2.1.1 或更高版本
  • Maven 或 Gradle
添加 Thymeleaf 依赖

首先,打开你的项目 pom.xml (如果你使用 Maven)或 build.gradle (如果你使用 Gradle) 文件,在其中添加 Thymeleaf 依赖:

Maven:

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

Gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}

这将使 Spring Boot 能够自动配置 Thymeleaf,所以我们不需要其他配置就可以开始使用它了。

配置 Thymeleaf

如果你想自定义 Thymeleaf 的一些配置,你可以在你的 application.properties 或 application.yml 文件中添加以下内容:

spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8

这里,我们禁用了 Thymeleaf 的缓存,将页面模板存储在 classpath:/templates/ 文件夹中,指定了文件扩展名为 .html,设置了视图模式为 HTML,以及指定了视图编码为 UTF-8。

之后我们需要创建 templates 文件夹,并在其中定义我们的 HTML 模板。Thymeleaf 使用模板来生成 web 视图。

创建视图

接下来我们将创建一个简单的 Thymeleaf 模板,并将其作为 web 视图返回。我们假定一个简单的模型,该模型包含一个标题和一个消息。

在 src/main/resources/templates 中创建一个名为 index.html 的文件:

<!DOCTYPE html>
<html>
<head>
    <title>Spring Boot - Thymeleaf</title>
</head>
<body>
    <h1 th:text="${title}"></h1>
    <p th:text="${message}"></p>
</body>
</html>

在上面的代码中,我们使用了 Thymeleaf 的表达式来获取模型的属性。例如,${title} 取出了模型中的 title 属性,并将其显示为 HTML 页面的标题。同样,${message} 取出了模型中的 message 属性并将其显示为 HTML 段落。

创建控制器

现在我们需要一个控制器来处理视图,并返回 HTML 内容。下面是一个简单的控制器类:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        String title = "Welcome to Thymeleaf!";
        String message = "This is a sample Thymeleaf web page.";

        model.addAttribute("title", title);
        model.addAttribute("message", message);

        return "index";
    }
}

在上述代码中,我们使用了 @Controller 注解来标识这个类是一个控制器。我们还使用了 @GetMapping 注解来标识这个方法处理 GET 请求。方法返回一个名为 index 的字符串,这个字符串是我们之前在 templates 文件夹中定义的模板名称。

此外,我们注入一个 Model 对象,Model 用于在模板中共享模型数据。在 home 方法中,我们将模型属性添加到 Model 对象中。title 和 message 将被传递给模板。

运行应用程序

现在我们已经准备好运行 Spring Boot 应用程序了。我们可以使用 Maven 或 Gradle 构建应用程序,并在本地主机上运行它。我们也可以使用 Spring Boot Maven 插件或 Gradle 插件直接运行应用程序。

我们建议使用 Maven 和 Spring Boot Maven 插件来构建和运行应用程序。要在本地运行应用程序,请打开终端并切换到应用程序的根目录,然后运行以下命令:

mvn spring-boot:run

或者,如果你使用 Gradle,运行以下命令:

./gradlew bootRun

当应用程序已经运行后,打开浏览器并输入 http://localhost:8080,您将看到我们刚刚创建的页面!

结论

以上就是本文对于 Spring Boot 和 Thymeleaf 的简单介绍,你可以在你的项目中使用 Spring Boot 和 Thymeleaf 快速构建 Web 应用程序。我们提供了一个简单的教程,展示了如何创建模板视图和控制器,并在模板中渲染模型数据。阳光总在风雨后,收获总在努力过后,祝大家学习愉快!