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日

相关文章

  • js创建jsonArray传输至后台及后台全面解析

    请看下面的攻略: 客户端(js)创建jsonArray并传输至服务端 创建jsonArray 1.定义一个空的jsonArray: var jsonArray = []; 2.向jsonArray中添加数据: var jsonArray = []; for (var i = 0; i < 3; i++) { var jsonObj = { name: …

    Java 2023年5月26日
    00
  • SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解

    下面是详细讲解 SpringBoot 配置嵌入式 Servlet 容器和使用外置 Servlet 容器的教程图解。 嵌入式Servlet容器 Spring Boot 内置了常用的嵌入式 Servlet 容器,如 Tomcat、Jetty、Undertow 等。开发者不需要手动配置这些容器,只需要在项目中添加相应的依赖即可。 配置 Tomcat 添加 Tomc…

    Java 2023年6月15日
    00
  • Spring MVC+mybatis实现注册登录功能

    下面是关于“Spring MVC+MyBatis实现注册登录功能”的完整攻略,包含两个示例说明。 Spring MVC+MyBatis实现注册登录功能 在本文中,我们将介绍如何使用Spring MVC和MyBatis框架实现注册登录功能。 步骤1:添加依赖 首先,我们需要在pom.xml中添加Spring MVC和MyBatis的依赖。以下是一个简单的依赖示…

    Java 2023年5月17日
    00
  • Java异常体系非正常停止和分类

    Java 异常体系是指在执行 Java 程序时所发生的异常情况。Java 程序在运行时可能会遇到各种各样的异常情况,比如空指针异常、数组下标越界异常、文件不存在异常等。这些异常情况可能会导致程序出现非正常停止的情况,因此了解 Java 异常体系非常重要。 Java 异常体系的分类 Java 异常体系分为两大类:可检查异常和不可检查异常。 可检查异常是指那些在…

    Java 2023年5月27日
    00
  • Spring Boot整合Spring Security的示例代码

    下面是关于“Spring Boot整合Spring Security的示例代码”的完整攻略: 1. 创建Spring Boot项目 首先,在开始整合Spring Security之前,我们需要先创建一个基于Spring Boot的Web项目。可以使用Spring Initializr快速创建,也可以手动创建一个Spring Boot项目。这里我们以Sprin…

    Java 2023年5月20日
    00
  • Spring Boot整合mybatis并自动生成mapper和实体实例解析

    下文将详细讲解Spring Boot整合MyBatis并自动生成mapper和实体实例的完整攻略。这个过程可以分成以下几个步骤: 导入依赖 首先,在pom.xml文件中加入MyBatis和MyBatis Generator的依赖。具体如下: <dependencies> <!– MyBatis –> <dependency&…

    Java 2023年5月19日
    00
  • JSP页面pageEncoding和contentType属性

    JSP(JavaServer Pages)是一种动态Web编程技术,用于在Web服务器中生成动态网页。在JSP中,pageEncoding和contentType都是非常重要的属性。下面我们将逐步介绍这两个属性。 pageEncoding属性 pageEncoding属性用于指定JSP文件的字符编码。在JSP中,如果没有指定编码类型,那么默认编码类型将是IS…

    Java 2023年6月15日
    00
  • Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    下面是将Java中的日期类型Date时间戳转换为MongoDB的时间类型数据的完整攻略: 1. 使用Java的Date类型获取时间戳 首先,需要使用Java的Date类型获取当前的时间戳。可以使用System类中的currentTimeMillis()方法来获取当前的时间戳。示例代码如下: long timestamp = System.currentTim…

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