spring boot(四)之thymeleaf使用详解

yizhihongxing

下面我将详细讲解“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中的eval()函数详解

    下面我将为你详细讲解”JavaScript中的eval()函数详解”。 介绍 JavaScript的eval()函数是一个全局函数,通过解析一个字符串并将它作为语句执行来计算字符串中的代码。在一些特殊的场景下,eval()函数非常的有用,例如动态地执行动态生成的代码。但是,需要注意的是,过度使用eval()函数容易造成代码安全性和性能问题,因此使用时需慎重。…

    JavaScript 2023年5月27日
    00
  • JavaScript防止表单重复提交的方法

    针对JavaScript防止表单重复提交的方法,下面我将为您详细说明相关攻略。 1. 前置知识 在介绍防止表单重复提交的方法之前,你需要掌握一下几个前置知识: 1.1 同步和异步 同步和异步是指程序在执行任务的时候,是否等待上一个任务执行完毕。同步任务会等待上一个任务执行完成,而异步任务则不会阻塞程序的执行。 1.2 发送Ajax请求 Ajax是异步Java…

    JavaScript 2023年6月10日
    00
  • js获取TreeView控件选中节点的Text和Value值的方法

    获取TreeView控件选中节点的Text和Value值,可以使用JavaScript来实现。具体方法如下: 方法一:利用ASP.NET自身提供的控件属性 ASP.NET的TreeView控件提供了一个SelectedNode属性,可以获取选中的节点。在此基础上,我们可以通过SelectedNode的Text和Value属性获取选中节点的文本和值。 // 获…

    JavaScript 2023年6月10日
    00
  • 前台js改变Session的值(用ajax实现)

    要实现“前台js改变Session的值(用ajax实现)”,我们需要通过以下步骤来实现: 在前台页面中引入jQuery库,因为我们将用它来实现ajax功能。可以使用以下代码实现引入: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js&qu…

    JavaScript 2023年6月10日
    00
  • webpack自定义loader全面详解

    webpack自定义loader全面详解 什么是loader 在webpack的构建过程中,通过loader可以对文件进行转换处理。loader可以将文件从不同的语言(例如:TypeScript)转换为JavaScript,或将内联图像转换为data URL。webpack本身只能理解JavaScript和JSON文件,而loader能够让webpack处理…

    JavaScript 2023年6月10日
    00
  • JavaScript实现世界各地时间显示

    当使用 JavaScript 实现世界各地时间显示时,我们可以利用 Date 对象和其方法,将获取的世界各地时区与本地时间进行计算再进行显示。 以下是实现该功能的完整攻略: 步骤一:获取本地时间 在 JavaScript 中,我们可以通过创建 Date 实例来获取当前本地时间。下面是一个获取本地时间的实例: const localTime = new Dat…

    JavaScript 2023年5月27日
    00
  • jQuery解析json格式数据示例

    下面是针对“jQuery解析json格式数据示例”的完整攻略: 1. 确定需求 在进行任何操作前,我们需要确定我们的需求。在这个示例中,我们的需求是从后端API获取到一个JSON格式的数据,然后通过jQuery解析这个JSON数据,最终展示在页面上。 2. 获取数据 由于我们的需求是获取一个JSON格式的数据,我们需要找到一个能够提供JSON数据的后端API…

    JavaScript 2023年6月11日
    00
  • 优化javascript的执行效率一些方法总结

    优化Javascript的执行效率一些方法总结 Javascript在前端开发中扮演着重要的角色,但是在开发过程中,经常会遇到Javascript代码执行效率较差的情况。以下是优化Javascript执行效率的一些方法总结。 1. 减少DOM操作 DOM操作是非常消耗性能的,每次变更都会让浏览器重新计算一次布局和绘制,因此尽量少的执行DOM操作可以提升代码的…

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