spring boot(四)之thymeleaf使用详解

下面我将详细讲解“spring boot(四)之thymeleaf使用详解”的完整攻略。

1. 什么是Thymeleaf

Thymeleaf是一个现代的服务器端Java模板引擎,旨在提供HTML效果的自然模板创建。它旨在生产出可以用浏览器查看的HTML,并且是非常适合web开发人员的,因为Thymeleaf非常适合处理HTML,最小化代码数量并让设计师或开发人员掌握易于理解的模板。

2. Spring Boot 如何集成 Thymeleaf

Spring Boot集成Thymeleaf非常简单,只需要按照以下简单步骤即可:

2.1 添加Thymeleaf依赖项

在POM文件中添加Thymeleaf依赖项:

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

2.2 添加Thymeleaf模板

添加Thymeleaf模板,可以在classpath:/templates/目录下创建html文件或文件夹。

2.3 配置Thymeleaf

在Spring Boot配置文件application.yml中配置Thymeleaf:

spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    encoding: utf-8
    cache: false

2.4 在Controller中使用Thymeleaf

编写Controller,注入模型数据,将接下来要展示用的数据添加到请求属性中,并指定要使用的模板,如下所示:

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/")
    public String index(Model model) {
        List<User> users = userService.getUserList();
        model.addAttribute("users", users);
        return "index";
    }
}

2.5 编写Thymeleaf模板

编写Thymeleaf模板,可以在模板中使用Thymeleaf标记动态展示数据,如下所示:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Spring Boot with Thymeleaf</title>
</head>
<body>
    <h1>User List</h1>
    <table>
        <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</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.email}"></td>
        </tr>
        </tbody>
    </table>
</body>
</html>

3. 高级用法

Thymeleaf不仅支持基本的模板语法,还提供了高级功能,例如:

3.1 条件语句

可以使用如下语法进行条件判断:

<div th:if="${flag}">
    Flag is true
</div>

<div th:unless="${flag}">
    Flag is false
</div>

3.2 循环

可以使用如下语法进行循环:

<tr th:each="user : ${users}">
    <td th:text="${user.id}"></td>
    <td th:text="${user.name}"></td>
    <td th:text="${user.email}"></td>
</tr>

3.3 算术

可以使用如下语法进行算术运算:

<div th:text="${num1 + num2}"></div>

3.4 自定义属性

可以使用如下语法定义自定义属性:

<div email="aaa@aaa.com" th:attr="data-email=${email}"></div>

示例1

下面展示一个使用Thymeleaf模板引擎生成实时动态页面的示例代码:

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "hello";
    }

}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <h1>Hello, <span th:text="${name}">Thymeleaf</span>!</h1>
</body>
</html>

在浏览器中输入http://localhost:8080/hello?name=Thymeleaf,即可看到生成的实时动态页面。

示例2

下面展示一个使用Thymeleaf模板引擎生成表格示例代码:

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/")
    public String index(Model model) {
        List<User> users = userService.getUserList();
        model.addAttribute("users", users);
        return "index";
    }
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>
    <table>
        <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</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.email}"></td>
        </tr>
        </tbody>
    </table>
</body>
</html>

在浏览器中输入http://localhost:8080/,即可看到生成的表格页面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot(四)之thymeleaf使用详解 - Python技术站

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

相关文章

  • srcElement表格样式

    srcElement 表示事件源对象,即触发该事件的元素。通过该属性,我们可以对事件源对象执行一些操作,比如修改元素的样式等。 在表格中,我们可以利用该属性来修改表格的样式,下面提供两个示例说明。 示例一:通过鼠标悬浮事件修改表格行背景色 <table> <tr> <th>姓名</th> <th>年…

    JavaScript 2023年6月10日
    00
  • 三种方法让Response.Redirect在新窗口打开

    当使用Response.Redirect方法时,页面会在当前浏览器窗口中打开跳转的页面,如果需要在新的窗口中打开跳转页面,可以采用以下三种方法: 1. 在服务器端页面上使用ClientScript.RegisterStartupScript方法 使用ClientScript.RegisterStartupScript方法可以在服务器端页面上注册启动JavaS…

    JavaScript 2023年6月11日
    00
  • javascript强大的日期函数代码分享

    JavaScript强大的日期函数代码分享 日期和时间是我们在开发Web应用中最常用到的一个组件,JavaScript提供了丰富的API让我们更加便捷地处理日期和时间。下面将分享一些常用的日期函数及其代码实现。 Date对象 JavaScript中内置的Date对象提供了一些常用的处理日期和时间的方法,其中比较常用的有以下几个方法: getFullYear(…

    JavaScript 2023年5月27日
    00
  • js 实现文件上传样式详情

    引言 本篇攻略将为您详细讲解如何使用 JavaScript 实现文件上传样式,主要包括以下步骤: 样式设计 上传文件处理 实现上传进度条 处理上传状态 同时,为了让读者更好理解,我们将提供两条关于 JavaScript 实现文件上传样式的示例,希望能为您带来帮助。 样式设计 在实现样式前,我们需要先确定好样式。常见的文件上传样式一般都是基于 input 标签…

    JavaScript 2023年5月27日
    00
  • 微信JSSDK调用微信扫一扫功能的方法

    针对您提供的话题,我来详细讲解一下微信JSSDK调用微信扫一扫功能的方法的完整攻略。 一、前置准备 要完成微信JSSDK调用微信扫一扫功能,需要提前完成以下几个步骤: 申请微信公众号。在微信公众平台上申请并审核通过公众号。 拥有有效的微信公众号开发者身份。在微信公众平台上注册并审核通过开发者账号,并进行开发者认证。 获得合法的微信JS-SDK权限。即在微信公…

    JavaScript 2023年6月10日
    00
  • JavaScript中BOM,DOM和事件的用法详解

    JavaScript中BOM,DOM和事件的用法详解 BOM是什么? BOM是指浏览器对象模型(Browser Object Model),它提供了对浏览器窗口的访问和控制。 窗口对象(Window Object) 窗口对象是BOM的顶层对象,它表示整个浏览器窗口或框架。窗口对象是可由脚本访问和操作的对象,通过它,可以控制当前窗口或框架的各项属性。 示例:获…

    JavaScript 2023年6月10日
    00
  • js 回车提交表单两种实现方法

    让我为你详细讲解一下“js 回车提交表单两种实现方法”的完整攻略。 1. 利用form表单的onsubmit事件 我们可以通过在form表单上绑定一个onsubmit事件来实现回车提交表单的功能。下面是一段示例代码: <form onsubmit="return false;"> <input type="te…

    JavaScript 2023年6月10日
    00
  • js数组方法reduce经典用法代码分享

    当需要将一个数组中的所有元素进行计算并且结果为一个值时,可以使用 JavaScript 数组方法 reduce()。 reduce() 方法对数组中的每个元素依次执行提供的函数,前一个执行结果作为下一个执行的参数,直到数组被处理完并且返回一个计算结果。 下面是 reduce() 方法的语法: array.reduce(function(total, curr…

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