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日

相关文章

  • JavaScript查看代码运行效率console.time()与console.timeEnd()用法

    下面是JavaScript查看代码运行效率console.time()与console.timeEnd()用法的完整攻略。 什么是console.time()与console.timeEnd() console.time() 和 console.timeEnd() 是 console 对象中的两个方法,用于查看代码的运行效率。代码块在这两个方法中间的执行时间…

    JavaScript 2023年5月27日
    00
  • Javascript入门学习第六篇 js DOM编程第2/2页

    关于“Javascript入门学习第六篇 js DOM编程第2/2页”的攻略,我会从以下几个方面进行详细讲解: DOM编程是什么? 如何获取DOM元素? 如何修改DOM元素的属性和内容? 如何动态创建或删除DOM元素? 示例说明。 首先我们来了解一下什么是DOM编程。 DOM编程是什么? DOM全称为“Document Object Model”,翻译为文档…

    JavaScript 2023年5月27日
    00
  • 分享十八个杀手级JavaScript单行代码

    下面我来详细讲解“分享十八个杀手级JavaScript单行代码”的完整攻略。 什么是“十八个杀手级JavaScript单行代码”? “十八个杀手级JavaScript单行代码”是一份由王福朋所分享的关于JavaScript技巧的文章,包含了18个利用JavaScript语言精妙之处的单行代码示例,涵盖了诸如类型判断、数组去重、随机排序等方面。 怎样使用这些代…

    JavaScript 2023年5月18日
    00
  • 详解JavaScript中的链式调用

    下面我来详细讲解一下JavaScript中的链式调用。 什么是链式调用 链式调用指的是在一个对象上连续调用多个方法,实现简洁明了的代码结构。例如: obj.method1().method2().method3(); 其中,obj是一个对象,method1()、method2()、method3()是该对象上的三个方法。链式调用可以让代码更加简洁和易读,同时…

    JavaScript 2023年5月19日
    00
  • js原生Ajax的封装和原理详解

    下面是关于”js原生Ajax的封装和原理详解”的完整攻略: 什么是Ajax Ajax是指异步JavaScript和XML(Asynchronous Javascript and XML)技术,主要用于异步加载数据,是一种无需重新加载整个网页的情况下,能够更新部分网页的技术。 使用Ajax技术,通过XMLHttpRequest对象向服务器发送请求,并进行异步通…

    JavaScript 2023年6月11日
    00
  • JS中cookie的使用及缺点讲解

    什么是cookie Cookie是存储在客户端浏览器中的小数据片段,它会在HTTP请求和服务器响应之间传递数据。Cookie通常用于记录用户的登录状态、页面访问记录、用户偏好等信息。 JS中如何使用cookie 1. 设置cookie 要设置Cookie,可以使用document.cookie属性。例如: document.cookie = "us…

    JavaScript 2023年5月19日
    00
  • Javascript单元测试框架QUnitjs详细介绍

    Javascript单元测试框架QUnitjs详细介绍 什么是QUnitjs? QUnitjs是JavaScript单元测试框架之一。它最初是为jQuery项目创建的,但是它已经发展成为一个独立的项目,并可以用于测试任何JavaScript代码。 QUnit提供了一组函数来编写测试,并提供了丰富的断言方法,方便开发人员编写测试用例并判断测试结果。它使用简单明…

    JavaScript 2023年6月10日
    00
  • JavaScript 详解缓动动画的封装与使用

    JavaScript 详解缓动动画的封装与使用 概述 缓动动画是一种常见的动画效果,它在动画运行初期速度较快,在结束时速度逐渐减慢,运动距离也逐渐减小,这种动画效果更符合人眼的视觉特性,所以受到广泛的应用。 在 JavaScript 中,我们可以通过封装函数来实现缓动动画,下面我们就来详细讲解一下。 实现思路 首先,我们需要知道缓动动画的原理,即在动画过程中…

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