SpringBoot整合Thymeleaf小项目及详细流程

yizhihongxing

Spring Boot整合Thymeleaf小项目及详细流程

本文将介绍如何使用Spring Boot整合Thymeleaf模板引擎,以及详细的流程和示例。

什么是Thymeleaf

Thymeleaf是一种现代化的服务器端Java模板引擎,它可以处理HTML、XML、JavaScript、CSS甚至纯文本。它的主要目标是为Web和独立环境创建优雅的自然模板。

Spring Boot整合Thymeleaf的步骤

下面是Spring Boot整合Thymeleaf的步骤:

  1. 添加Thymeleaf依赖

在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. 配置Thymeleaf

在application.properties文件中添加以下配置:

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

在上面的配置中,我们禁用了Thymeleaf的缓存,并指定了模板文件的位置和后缀名。

  1. 创建Thymeleaf模板

在src/main/resources/templates目录下创建一个名为index.html的模板文件,内容如下:

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

在上面的模板中,我们使用了Thymeleaf的语法来显示一个变量。

  1. 创建Controller

创建一个名为HelloController的控制器类,代码如下:

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

在上面的控制器中,我们使用了@GetMapping注解来处理根路径的请求,并将一个名为message的变量添加到模型中。

  1. 运行应用程序

运行应用程序,并访问http://localhost:8080/,应该可以看到“Hello, Thymeleaf!”的文本。

示例一:使用Thymeleaf显示列表

下面是一个示例,演示如何使用Thymeleaf显示一个列表:

  1. 创建一个名为User的实体类:
public class User {
    private Long id;
    private String name;
    private Integer age;

    // 省略getter和setter方法
}

在上面的示例中,我们创建了一个名为User的实体类,并定义了id、name和age属性。

  1. 创建一个名为UserController的控制器类:
@Controller
public class UserController {
    @GetMapping("/users")
    public String list(Model model) {
        List<User> users = new ArrayList<>();
        users.add(new User(1L, "张三", 20));
        users.add(new User(2L, "李四", 25));
        users.add(new User(3L, "王五", 30));
        model.addAttribute("users", users);
        return "user/list";
    }
}

在上面的示例中,我们创建了一个名为UserController的控制器类,并使用@GetMapping注解来处理/users路径的请求。我们还创建了一个名为users的列表,并将其添加到模型中。

  1. 创建一个名为list.html的模板文件:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>User List</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Age</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="user : ${users}">
                <td th:text="${user.id}"></td>
                <td th:text="${user.name}"></td>
                <td th:text="${user.age}"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

在上面的模板中,我们使用了Thymeleaf的语法来显示一个名为users的列表。

  1. 运行应用程序

运行应用程序,并访问http://localhost:8080/users,应该可以看到一个包含三个用户信息的表格。

示例二:使用Thymeleaf处理表单

下面是一个示例,演示如何使用Thymeleaf处理表单:

  1. 创建一个名为UserForm的表单类:
public class UserForm {
    private String name;
    private Integer age;

    // 省略getter和setter方法
}

在上面的示例中,我们创建了一个名为UserForm的表单类,并定义了name和age属性。

  1. 创建一个名为UserController的控制器类:
@Controller
public class UserController {
    @GetMapping("/user")
    public String form(Model model) {
        model.addAttribute("userForm", new UserForm());
        return "user/form";
    }

    @PostMapping("/user")
    public String submit(@ModelAttribute UserForm userForm) {
        System.out.println(userForm.getName());
        System.out.println(userForm.getAge());
        return "redirect:/user";
    }
}

在上面的示例中,我们创建了一个名为UserController的控制器类,并使用@GetMapping注解来处理/user路径的请求。我们还创建了一个名为userForm的表单,并将其添加到模型中。在提交表单时,我们使用@PostMapping注解来处理请求,并使用@ModelAttribute注解来绑定表单数据。

  1. 创建一个名为form.html的模板文件:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>User Form</title>
</head>
<body>
    <form th:action="@{/user}" th:object="${userForm}" method="post">
        <div>
            <label>Name:</label>
            <input type="text" th:field="*{name}">
        </div>
        <div>
            <label>Age:</label>
            <input type="text" th:field="*{age}">
        </div>
        <div>
            <button type="submit">Submit</button>
        </div>
    </form>
</body>
</html>

在上面的模板中,我们使用了Thymeleaf的语法来创建一个表单,并绑定表单数据。

  1. 运行应用程序

运行应用程序,并访问http://localhost:8080/user,应该可以看到一个包含两个输入框和一个提交按钮的表单。在提交表单后,应该可以在控制台中看到表单数据的输出。

结束语

在本文中,我们介绍了如何使用Spring Boot整合Thymeleaf模板引擎,并提供了两个示例。这些技巧可以帮助您更好地理解Thymeleaf的使用方法,并提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Thymeleaf小项目及详细流程 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Java超详细讲解如何生成随机整数

    生成随机整数在Java中是一个非常主要和常见的任务,可以使用Java自带的数学随机数发生器类或者第三方库中的随机数工具类来实现。下面是Java超详细讲解如何生成随机整数的完整攻略: 一、使用Java自带的数学随机数发生器类 Java自带的数学随机数发生器类是 java.util.Random ,它可以用来生成伪随机数。下面是使用该类生成随机整数的代码示例: …

    Java 2023年5月26日
    00
  • Java反应式框架Reactor中的Mono和Flux

    Java反应式框架Reactor中的Mono和Flux是两种非常重要的响应式数据类型。Mono是一种表示单个结果和可能的错误信息的数据类型,而Flux则是一种可以包含多个结果且可能有多个错误信息的数据类型。在Reactor框架中,这两种数据类型是非常常用的,下面我们将详细讲解它们的使用方法。 Mono和Flux的创建 要创建Mono和Flux对象,最常见的方…

    Java 2023年5月19日
    00
  • java字符串数组进行大小排序的简单实现

    下面是“java字符串数组进行大小排序的简单实现”的完整攻略: 1.前置知识 在进行字符串数组排序之前,需要了解以下知识点: 1.1 比较器 Java中的比较器定义了对对象进行排序的规则,在比较器中实现排序规则后可以调用 Collections.sort() 方法或 Arrays.sort() 方法进行排序。 1.2 字符串比较 当需要对字符串进行比较时,可…

    Java 2023年5月26日
    00
  • window.location和document.location的区别分析

    下面我将详细讲解一下“window.location和document.location的区别分析”的攻略。 标题 简介 window.location和document.location是JavaScript中的两个对象,它们都表示当前页面的URL地址。虽然它们的属性和方法非常相似,但它们之间是有一些区别的。 window.location和documen…

    Java 2023年6月15日
    00
  • java实现在原有日期时间上加几个月或几天

    下面是java实现在原有日期时间上加几个月或几天的完整攻略。 1. 使用Java 8中的LocalDate类 在Java 8中,可以使用LocalDate类来对日期进行操作。下面是一个示例代码,将当前日期加上三天并输出加完之后的日期。 LocalDate today = LocalDate.now(); // 获取当前日期 LocalDate newDate…

    Java 2023年5月20日
    00
  • Spring Security权限控制的实现接口

    Spring Security是一个基于Spring框架的安全框架,用于实现用户认证(authentication)和授权(authorization)等安全功能。其中,权限控制是Spring Security的一个重要特性,可以通过编写实现接口来对系统中不同的资源进行授权控制。下面是完整的Spring Security权限控制实现接口攻略: 一、Sprin…

    Java 2023年6月3日
    00
  • Android学习笔记45之gson解析json

    Android学习笔记45之gson解析json 简介 Google推出的Gson是一个使用Java语言实现的Json解析库,可以将Json字符串自动解析成Java对象,或者将Java对象转成Json字符串。在Android开发中,使用Gson解析Json数据是非常常见的操作。本文将介绍Gson解析Json的完整攻略。 配置Gson库 在项目的build.g…

    Java 2023年5月26日
    00
  • Kafka单节点伪分布式集群搭建实现过程详解

    Kafka单节点伪分布式集群搭建实现过程详解 背景介绍 Kafka是一种高吞吐量的分布式发布订阅消息系统,广泛应用于大数据领域。本文将介绍如何搭建一个Kafka单节点伪分布式集群。 搭建步骤 步骤1:下载和安装Kafka 在官网https://kafka.apache.org/downloads中下载最新的Kafka版本,并按照官方文档步骤进行安装。 步骤2…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部