简介
- 首先介绍下Themeleaf, 是一个模板渲染引擎,在开发单体项目中使用,不适用于前后端分离的项目。使用html标签,先这样,大致先学习一下,再回来总结。
- 下面介绍下Themeleaf 基本使用
Themeleaf 基本使用
-
创建项目
-
修改pom文件,添加Themeleaf启动器依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
创建controller类 ThemeleafPagaController
实现了页面跳转并返回一个字符串值package com.example.demo1.Controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class ThemeleafPagaController { /** * 页面跳转方法 */ @GetMapping("/show") public String showPage(Model model){ model.addAttribute("msg","hello Themeleaf"); return "hello"; } }
4.创建简单视图 hello.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span th:text = "你好张杰"> </span>
<hr/>
<span th:text =" ${msg}"></span>
</body>
</html>
- 运行效果
themeleaf 语法讲解
- 下面开始讲解一些基本的themeleaf基本语法
字符串与变量的输出操作
- 引入命名空间
- th:text 标记 (在页面中输出值)
- 向一个html标签中渲染一个常量串 (如 “你好张杰”)
- 将一个变量值渲染到html标签中
<body> <span th:text = "你好张杰"> </span> <hr/> <span th:text =" ${msg}"></span> </body>
- th:value 标记 (可以将一个值输入到input标签中的value值)
<body> <span th:text = "你好张杰"> </span> <hr/> <span th:text =" ${msg}"></span> <hr/> <input th:value="${msg}"> </body>
字符串操作
- themeleaf 提供了一些内置对象,,可以直接在模板中使用。以#引用内置对象。
- 使用内置对象的语法
- 引用内置对象需要使用 #
- 大部分内置对象的名称都以 s 结尾,如strings,numbers,dates
(strings的 contains,indexof,length方法此处不再详细介绍了,用法一样)<!--判断msg字符串是否为空,为空返回 true,不为空 返回false--> <span th:text="${#strings.isEmpty(msg)}"></span>
themeleaf 迭代器遍历
- th:each 迭代器,用于循环迭代集合。
- 创建对应的实体类custmors
- 视图层代码
<table border="1" width="50%"> <tr> <th>ID</th> <th>Name</th> <th>age</th> </tr> <tr th:each="u : ${list}"> <td th:text="${u.id}"> </td> <td th:text="${u.name}"> </td> <td th:text="${u.age}"> </td> </tr> </table>
- controller层代码
List<customers> list = new ArrayList<>(); list.add(new customers("1","admin1",22)); list.add(new customers("2","admin2",23)); list.add(new customers("3","admin3",24)); list.add(new customers("4","admin4",25)); model.addAttribute("list",list);