Thymeleaf (详细)

目录

一、Thymeleaf介绍

Thymeleaf 是一个模版引擎。所谓的模版引擎,就是模版+数据。

1.快速开始

Thymeleaf (详细)

新增的依赖

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

创建页面到templates文件夹下

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

      欢迎你,<span th:text="${name}">贵宾</span>!

</body>
</html>

设计接口返回这个页面

@Controller
public class MyController {

     @RequestMapping("/show")
    public String show(Model model){
        model.addAttribute("name","xiaoming");
        return "hello";
    }

}

模版引擎的作用:

  • 让我们写渲染页面的时候更加的方便,直接写html即可。
  • 模版没有数据,可以直接展示模版中的默认内容,当有数据时展示数据。——页面不一定必须跑在服务器内,简化前端页面的设计步骤。

有数据时:

Thymeleaf (详细)

没有数据时:

Thymeleaf (详细)

2.字符串

th标签中要想做字符串连接,可以使用+号或者“||”

   欢迎你,<span th:text="超级vip+${name}">贵宾</span>!
   欢迎你,<span th:text="|超级vip${name}|">贵宾</span>!

3.if-else

   <span th:if="${age > 18}">成年人,可以做很多事情</span>
<br/>
   <span th:unless="${age > 18}">成年人,可以做很多事情</span>

4.三元运算

 <span th:text="${age > 18?'爽!':'累'}">成年人,可以做很多事情</span>

5.循环

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>学生列表</title>

    <!-- Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
    <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
</head>
<body>

<table class="table table-striped">
    <tr>
        <td>序号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
    </tr>
    <tr th:each="stu : ${stus}">
        <td th:text="${stu.id}">序号</td>
        <td th:text="${stu.name}">姓名</td>
        <td th:text="${stu.age}">年龄</td>
        <td th:text="${stu.gender}">性别</td>
    </tr>
</table>



<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</body>
</html>

后端数据:

@RequestMapping("/students")
    public String students(Model model){

        //1.创建List
        List<Student> stus = new ArrayList<>();
        stus.add(new Student(1001L,"小明",20,"男"));
        stus.add(new Student(1002L,"小谢",21,"男"));
        stus.add(new Student(1003L,"小王",22,"女"));
        //2.传给前端页面
        model.addAttribute("stus",stus);

        return "students";
    }

6.日期格式化

<input th:value="${#dates.format(now,'yyyy-MM-dd HH:mm:ss')}"/>

二、Thymeleaf的案例-修改用户数据

设计前端页面

Thymeleaf (详细)

上一篇:【OAuth2.0】Spring Security OAuth2.0篇之初识


下一篇:对象类型和Map相互转化 对象集合和Map集合互相转化