spring boot使用thymeleaf模板的方法详解

下面为您提供《Spring Boot使用Thymeleaf模板的方法详解》的完整攻略。

1. Thymeleaf简介

Thymeleaf是一种现代的服务器端Java模板引擎,可以构建HTML、XML、JavaScript、CSS或文本输出。它旨在与Spring框架完全集成,但可以用于处理任何Web和非Web应用程序开发的模板需要。

2. Spring Boot中如何使用Thymeleaf模板

2.1 引入Thymeleaf依赖

在Spring Boot中使用Thymeleaf必须要引入相关的依赖。可以在项目的pom.xml中加入如下代码:

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

2.2 配置Thymeleaf视图解析器

在Spring Boot的配置文件application.properties中加入如下代码:

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

其中,prefix表示Thymeleaf模板文件存放的位置,suffix表示模板文件的后缀名,encoding表示编码格式,mode表示HTML模式,cache表示是否缓存模板。

2.3 创建Thymeleaf模板文件

在classpath:/templates/目录下创建一个名为“index.html”的Thymeleaf模板文件。代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring Boot Thymeleaf</title>
</head>
<body>
    <h1>Hello, Thymeleaf!</h1>
    <p th:text="'Current time: ' + ${#dates.format(now(),'yyyy-MM-dd HH:mm:ss')}" />
</body>
</html>

2.4 创建Controller处理请求

创建一个Controller,用于处理请求并返回Thymeleaf模板页面。代码如下:

@Controller
public class ThymeleafController {

    @GetMapping("/thymeleaf")
    public String thymeleaf(Model model) {
        model.addAttribute("now", new Date());
        return "index";
    }
}

在以上代码中,@GetMapping注解表示处理GET请求,thymeleaf方法内的model对象用于向Thymeleaf模板传递数据,return "index"表示返回名为“index”的Thymeleaf模板。

2.5 启动应用程序并测试

在浏览器中输入http://localhost:8080/thymeleaf地址,应该可以看到类似如下的页面:

Hello, Thymeleaf!
Current time: 2022-07-29 14:15:36

以上就是使用Thymeleaf模板的Spring Boot应用程序的完整流程。

3. Thymeleaf中的常用语法

Thymeleaf中的语法十分灵活,以下是几种常见的语法:

3.1 基本语法

<span th:text="${user.name}">Username</span>

在以上代码中,${user.name}是一个表达式,表示从model中获取user对象的name属性。

3.2 条件判断

<div th:if="${user.isAdmin}">
    <span>Welcome, Admin!</span>
</div>

在以上代码中,${user.isAdmin}是一个表达式,表示user对象是否是管理员,如果是,则显示欢迎语句。

3.3 循环遍历

<ul>
    <li th:each="item : ${items}" th:text="${item.name}">Item name</li>
</ul>

在以上代码中,${items}是一个表达式,表示要遍历的列表,具体的每个元素都用item表示。

4. 示例说明

下面通过两个示例来讲解如何使用Thymeleaf模板:

4.1 示例一:展示学生列表

创建一个名为“students.html”的Thymeleaf模板文件,用于展示学生列表。代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Student List</title>
</head>
<body>
    <h1>Student List</h1>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Age</th>
                <th>Gender</th>
                <th>Address</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="student : ${students}">
                <td th:text="${student.id}">0</td>
                <td th:text="${student.name}">Name</td>
                <td th:text="${student.age}">0</td>
                <td th:text="${student.gender}">Male</td>
                <td th:text="${student.address}">Address</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

创建一个名为“Student”的Java Bean,代码如下:

public class Student {
    private Long id;
    private String name;
    private Integer age;
    private String gender;
    private String address;
    // getter and setter
}

创建一个Controller,代码如下:

@Controller
public class StudentController {
    @GetMapping("/students")
    public String students(Model model) {
        List<Student> students = new ArrayList<>();
        students.add(new Student(1L, "Tom", 18, "Male", "Beijing"));
        students.add(new Student(2L, "Jerry", 20, "Female", "Shanghai"));
        students.add(new Student(3L, "Mike", 22, "Male", "Guangzhou"));
        model.addAttribute("students", students);
        return "students";
    }
}

在以上代码中,students方法向模型中添加了一个名为“students”的属性,值为Student对象列表。返回值为名为“students”的Thymeleaf模板。

启动应用程序,访问http://localhost:8080/students,应该可以看到如下页面:

Student List

ID  Name    Age Gender  Address
1   Tom 18  Male    Beijing
2   Jerry   20  Female  Shanghai
3   Mike    22  Male    Guangzhou

4.2 示例二:表单提交

创建一个名为“form.html”的Thymeleaf模板文件,用于展示并处理表单提交。代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Form Submission</title>
</head>
<body>
    <h1>Form Submission</h1>
    <form method="post" th:object="${user}">
        <div>
            <label for="name">Name:</label>
            <input type="text" id="name" name="name" th:value="*{name}" />
        </div>
        <div>
            <label for="age">Age:</label>
            <input type="text" id="age" name="age" th:value="*{age}" />
        </div>
        <div>
            <button type="submit">Submit</button>
        </div>
    </form>
</body>
</html>

创建一个名为“User”的Java Bean,代码如下:

public class User {
    private String name;
    private Integer age;
    // getter and setter
}

创建一个Controller,用于展示和处理表单提交,代码如下:

@Controller
public class UserController {
    @GetMapping("/form")
    public String form(Model model) {
        model.addAttribute("user", new User());
        return "form";
    }

    @PostMapping("/form")
    public String submit(@ModelAttribute User user, Model model) {
        model.addAttribute("user", user);
        return "result";
    }
}

在以上代码中,form方法向模型中添加了一个名为“user”的属性,值为一个新的空User对象。返回值为名为“form”的Thymeleaf模板。

submit方法使用@ModelAttribute注解来直接绑定表单提交的数据到User对象中,然后将User对象添加到模型中,返回名为“result”的Thymeleaf模板。

创建一个名为“result.html”的Thymeleaf模板文件,展示表单提交结果,代码如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Form Submission Result</title>
</head>
<body>
    <h1>Form Submission Result</h1>
    <ul>
        <li>Name: <span th:text="${user.name}">-</span></li>
        <li>Age: <span th:text="${user.age}">-</span></li>
    </ul>
    <a href="/form">Back to Form</a>
</body>
</html>

启动应用程序,访问http://localhost:8080/form,应该可以看到一个表单页面,输入一些信息,然后点击Submit按钮即可。

提交成功后,应该可以看到内容为刚才提交的用户信息的页面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot使用thymeleaf模板的方法详解 - Python技术站

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

相关文章

  • Mybatis实现自动生成增删改查代码

    下面我给你详细讲解一下Mybatis实现自动生成增删改查代码的完整攻略。 概述 Mybatis是一款基于Java的持久层框架,它提供了自动生成增删改查代码的功能,让开发人员可以快速生成常用的CRUD操作。可以大大提高代码的开发效率,减少了数据库访问层的开发工作量。 步骤 实现Mybatis自动生成增删改查代码的过程如下: 配置Mybatis Generato…

    Java 2023年5月19日
    00
  • java必学必会之GUI编程

    Java必学必会之GUI编程攻略 1. GUI编程的概念 GUI是Graphical User Interface的缩写,意味着图形用户界面。GUI编程是指使用可视化工具和API,创建具有图形化用户界面的应用程序。Java提供多种GUI开发工具,如Swing、AWT、JavaFX等,其中Swing是最流行的。 2. 使用Swing进行GUI设计 2.1 创建…

    Java 2023年5月19日
    00
  • 教你用JAVA写文本编辑器(一)

    “教你用JAVA写文本编辑器(一)”这篇文章主要是为初学者介绍如何用JAVA语言编写一个简单的文本编辑器程序。整篇文章介绍了搭建开发环境、项目创建及代码实现等过程,并给出了一个简单的示例。下面是该攻略的详细内容: 搭建开发环境 在开始编写JAVA文本编辑器程序之前,我们需要先搭建好JAVA开发环境。这里我们用的是Eclipse(也可以使用其他的JAVA集成开…

    Java 2023年5月19日
    00
  • Java String 对象(你真的了解了吗)

    Java String 对象(你真的了解了吗) 什么是 Java String 对象 Java String 是 Java 语言中的一个类,用于存储和操作字符串。String 对象在 Java 中非常常用,几乎每个 Java 程序都会用到。 每个 Java String 对象都是不可变的(immutable),即一旦创建了一个 String 对象,它的值就不…

    Java 2023年5月26日
    00
  • 详解如何使用MyBatis简化JDBC开发

    下面我给您详细讲解如何使用MyBatis简化JDBC开发的完整攻略。 什么是MyBatis? MyBatis是一款优秀的Java持久层框架,可以对JDBC进行封装,使得我们在开发过程中不再需要手动编写JDBC的相关代码,极大地简化了代码编写的难度,并提高了开发效率。 如何使用MyBatis? 添加依赖 使用Maven构建项目时,在pom.xml文件中加入以下…

    Java 2023年5月20日
    00
  • Java对zip,rar,7z文件带密码解压实例详解

    Java对zip,rar,7z文件带密码解压实例详解 在Java中,可以通过使用第三方库来实现对压缩文件的解压操作。其中,针对带有密码保护的压缩文件,需要借助专门的工具才能解压。本文将介绍如何使用Java对zip、rar、7z文件带密码进行解压的详细攻略。 I. 依赖库 首先,需要引入以下依赖库: <dependency> <groupId…

    Java 2023年5月20日
    00
  • java.lang.NumberFormatException异常解决方案详解

    Java.lang.NumberFormatException异常解决方案详解 什么是NumberFormatException异常? NumberFormatException异常是Java程序中常见的异常之一,表示将字符串转换为数字时出现错误。当字符串不符合数字格式或超出数字范围时,会抛出该异常。 解决方案 出现NumberFormatException…

    Java 2023年5月27日
    00
  • 浅析Mybatis Plus和Mybatis的区别

    下面就来详细讲解 “浅析Mybatis Plus和Mybatis的区别”的完整攻略。 什么是Mybatis? Mybatis 是一款基于 Java 的持久层框架,它封装了 JDBC 操作,简化了 JDBC 操作繁琐的过程,使得开发者能够将精力集中到 SQL 的编写上面。 Mybatis 的特点: 操作简单、方便,对开发者友好 灵活度高,可以定制化 SQL 提…

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