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日

相关文章

  • 几则JSP入门知识总结

    下面我将详细讲解“几则JSP入门知识总结”的完整攻略。 什么是JSP? JSP全称为JavaServer Pages,它是一种HTML页面开发的技术标准,它允许Java代码和一些特殊的JSP标记被嵌入到HTML页面中。JSP旨在简化动态网页的创建,它可以很容易地与Java Servlets集成。 JSP基础知识 JSP文件结构 在JSP中,我们可以将Java…

    Java 2023年6月15日
    00
  • Java中的Spring Security配置过滤器

    下面是关于Java中的Spring Security配置过滤器的完整攻略: 概述 Spring Security是一个基于Spring框架的安全性管理框架,通过Spring Security可以实现对系统资源的保护。在Spring Security中,Filter链是一个非常重要的组件。Spring Security通过Filter实现了对Web请求的控制。…

    Java 2023年6月3日
    00
  • 什么是永久代和元空间?

    以下是关于永久代和元空间的完整使用攻略: 什么是永久代和元空间? 永久代和元空间都是Java虚拟机中用于存储类信息的区域。在Java 8,永久代是用于存储类信息的区域,而在Java 8及以后的版本中,永久代被元空间所取。空间是一种新的内存区域,它与永久代相比,具有更高的灵活性和更好的性能。 永代 永久代是Java虚机中用于存储类信息的区域,它的大小是固定的,…

    Java 2023年5月12日
    00
  • ASP中Server.Execute和Execute实现动态包含(include)脚本的区别

    ASP中的Server.Execute和Execute都可以用来实现动态包含(include)脚本的功能,它们的区别主要在于脚本的执行方式和返回值的获取方式。 Server.Execute Server.Execute方法用来执行指定的ASP文件,并将执行结果插入当前页面的位置。 语法:Server.Execute URL [, includeBoolean…

    Java 2023年6月15日
    00
  • Java中File的实例详解

    Java中File的实例详解 Java中的File类提供了一些方法来操作文件和目录。本文将详细讲解File类的实例用法。 创建一个File实例 要创建一个File实例,可以使用以下构造函数: File(String pathname) 这个构造函数接受一个字符串参数,表示文件的路径。下面是一个简单的例子: File file = new File(&quot…

    Java 2023年6月1日
    00
  • Java实现快速并查集

    让我来为大家详细讲解一下Java实现快速并查集的完整攻略。 什么是并查集 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。并查集的进阶版可以使用路径压缩和按秩合并的算法,使时间复杂度更加优秀。 Java实现快速并查集 下面我们将通过一个完整的Java实现过程,来详细讲解如何实现一个快…

    Java 2023年5月19日
    00
  • SpringBoot集成WebSocket【基于纯H5】进行点对点[一对一]和广播[一对多]实时推送

    下面将对“SpringBoot集成WebSocket进行点对点和广播实时推送”的完整攻略进行详细讲解,建议您认真阅读。 概述 WebSocket是HTML5推出的一种新型协议,它类似于HTTP协议,但对服务器尤其友好。它允许服务器在任何时刻向客户端推送数据,而不必等待客户端去请求。相对于传统的Ajax轮询方式,WebSocket更加高效、实时。 Spring…

    Java 2023年5月20日
    00
  • SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示

    首先对于这个攻略的标题,我们可以进行分析理解。 “SSH框架网上商城项目”:这个部分是指网上商城项目所使用的技术框架或开发方式,其中SSH框架通常指的是Spring + Struts2 + Hibernate。 “第16战”:这个部分是指在整个项目中,这是第16个完成的模块或任务。 “Hibernate二级缓存处理”:这个部分是指在这个模块中,我们要讲解的是…

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