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日

相关文章

  • tomcat部署java web项目遇到的问题及解决方法

    Tomcat部署Java Web项目遇到的问题及解决方法 Tomcat是非常常用的Java Web服务器,但在部署Java Web项目时,也经常会遇到一些问题。本篇攻略将讲解一些可能遇到的问题及解决方法,希望对大家有所帮助。 问题一:Tomcat启动出错,指定端口已被占用 在启动Tomcat时,可能会遇到指定的端口已被占用的情况。这时候,需要找到占用该端口的…

    Java 2023年6月2日
    00
  • Struts2数据输入验证教程详解

    Struts2数据输入验证教程详解 什么是数据输入验证 在应用程序中,数据输入验证是一项重要的任务。它可以确保应用程序接受有效的、可靠的和正确的数据。数据输入验证通常采用静态和动态验证技术,在前台和后台进行验证。 静态验证技术用于验证数据格式是否为正确的格式,比如数字、日期等。而动态验证技术则用于验证数据是否是符合业务规则和逻辑的,例如输入的身份证号码必须符…

    Java 2023年5月20日
    00
  • Spring security实现登陆和权限角色控制

    下面我来为你详细讲解“Spring Security实现登录和权限角色控制”的完整攻略。 什么是Spring Security? Spring Security是Spring框架的安全性框架,用于保护Java应用程序。 它为应用程序提供了身份验证和授权服务。 它在应用程序中实现安全性功能,如身份验证,授权和身份验证记住我等功能,并保护应用程序免受常见的攻击,…

    Java 2023年5月20日
    00
  • ssh项目环境搭建步骤(web项目)

    下面是ssh项目环境搭建步骤的完整攻略: 1. 需要的软件 在搭建ssh项目环境前,我们需要先安装以下软件:1. JDK:java开发环境。2. Tomcat:web应用服务器,本次攻略以Tomcat 9为例。3. MySQL:关系型数据库,本次攻略以MySQL 8.0为例。4. Maven:项目构建工具。 2. 环境设置 2.1 JDK环境变量配置 在系统…

    Java 2023年5月20日
    00
  • 实例分析java对象的序列化和反序列化

    Java 对象的序列化和反序列化是 Java 编程中的一项重要技术。序列化和反序列化可以将 Java 对象在网络传输或存储时转化为二进制数据流,并在需要时将其重新生成为 Java 对象。本文将详细讲解序列化和反序列化的基本概念、实现基础、序列化和反序列化的示例应用等内容,以便读者可以深刻理解和掌握这一技术。 什么是序列化与反序列化? 序列化是指将 Java …

    Java 2023年5月26日
    00
  • Java使用Jdbc连接Oracle执行简单查询操作示例

    Java使用JDBC连接Oracle数据库的步骤: 导入JDBC驱动程序 初始化数据库连接 创建Statement对象 执行SQL查询,并将结果集存储在ResultSet类对象中 处理结果集 关闭结果集、Statement和Connection对象 下面分别介绍这些步骤及对应示例: 1. 导入JDBC驱动程序 在Java代码中导入jdbc驱动程序,该驱动程序…

    Java 2023年5月19日
    00
  • 详解Java中雪花算法的实现

    详解Java中雪花算法的实现 需求概述 在分布式系统中,为了保证业务数据的唯一性,需要生成唯一的ID。传统的ID生成方式可能出现因为高并发而重复的情况,而雪花算法(Snowflake)正是为了解决这个问题而出现的。 本文会详细介绍Java中雪花算法的实现,及其原理。 雪花算法的基本原理 雪花算法是Twitter开源的分布式ID生成算法,采用一个64位的lon…

    Java 2023年5月19日
    00
  • spring jpa 审计功能自定义填充字段方式

    完整的“spring jpa 审计功能自定义填充字段方式”的攻略分为以下几个步骤: 借助 Spring 审计功能实现自动填充字段 自定义填充字段的值生成方式 下面我们对每个步骤进行详细说明。 一、借助 Spring 审计功能实现自动填充字段 Spring Data JPA 提供了审计功能,即自动为实体的某些特定字段填充值,比如创建时间、修改时间、创建人员、修…

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