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

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日

相关文章

  • maven 隐式依赖引起的包冲突解决办法

    当使用Maven构建项目时,一个常见的问题是来自传递依赖的冲突。这个问题的根源在于Maven隐式依赖的传递机制。本文将介绍如何通过Maven来解决这个问题,主要包括以下几个方面: 了解Maven的依赖传递机制 利用Maven Dependency Plugin分析依赖冲突 使用依赖排除,去除冲突依赖 了解 Maven 的依赖传递机制 Maven的依赖传递机制…

    Java 2023年5月20日
    00
  • 详解Spring boot操作文件的多种方式

    详解Spring Boot操作文件的多种方式 在Spring Boot应用程序中,操作文件是一个非常常见的需求。本文将详细介绍Spring Boot操作文件的多种方式,包括使用Java IO、Apache Commons IO、Spring Framework和Spring Boot提供的API。 使用Java IO操作文件 Java IO是Java标准库中…

    Java 2023年5月15日
    00
  • 详解Java中String类型与默认字符编码

    下面是一份详细的攻略,用于讲解 Java 中 String 类型与默认字符编码的详解。 详解Java中String类型与默认字符编码 String 类型 在 Java 中,String 类型是代表字符串的一个类。它实现了 Serializable、Comparable、CharSequence 接口,是不可变的,线程安全的。String 对象的字符值被存储在…

    Java 2023年5月20日
    00
  • 使用java编程从0到1实现一个简单计算器

    下面是使用java编程从0到1实现一个简单计算器的完整攻略: 1. 准备工作 首先,我们需要准备好开发所需的工具和环境: JDK (Java Development Kit):用于编译和运行Java代码,下载地址可见Oracle官网 IDE (Integrated Development Environment):用于编写Java代码的开发环境,有很多不同的…

    Java 2023年5月18日
    00
  • Java中避免NullPointerException的方法总结

    Java中避免NullPointerException的方法总结。 使用Optional类 Optional类可以对可能为空的对象进行封装,避免出现NullPointerException。使用Optional类的示例代码如下: Optional<String> optional = Optional.ofNullable(str); boole…

    Java 2023年5月26日
    00
  • Java log4j详细教程

    Java log4j详细教程 什么是log4j log4j是一种用于记录Java日志的流行框架,它允许开发人员在应用程序中添加灵活的、可配置的日志记录,并支持若干输出目标。 如何使用log4j 步骤一:将log4j库添加到项目中 在项目中添加log4j库有以下两种方法: 将log4j包含在项目的Classpath路径下 在Maven或Gradle等构建工具中…

    Java 2023年5月19日
    00
  • springboot+dynamicDataSource动态添加切换数据源方式

    使用 Spring Boot,可以动态添加切换数据源,需要用到Spring JDBC模块中的 AbstractRoutingDataSource 类和 DynamicDataSourceHolder 维护一个存储当前使用的数据源 key 的 ThreadLocal 对象。步骤如下: 导入依赖 首先,在 pom.xml 中导入 Spring Boot 和 Sp…

    Java 2023年5月20日
    00
  • JavaWeb动态导出Excel可弹出下载

    引言: 在JavaWeb开发过程中,有时候需要将数据库中的数据导出为Excel文件,然后让用户可以进行下载。而且,下载的过程中需要提供一些提示信息,如下载进度、下载成功等信息。本文将详细介绍如何使用JavaWeb动态导出Excel并实现弹出下载的效果。 步骤: 1.创建Excel文件 我们可以使用Apache POI来创建Excel文件,这里就不过多介绍了,…

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