Spring Boot 使用 Thymeleaf
目录
-
变量表达式
${session.user.name}
-
选择或星号表达式
*{customer.name}
-
文字国际化表达式
-
URL 表达式
@{/order/list}
关键字 | 功能介绍 | 案例 |
---|---|---|
th:id | 替换id | `` |
th:text | 文本替换 | description |
th:utext | 支持html的文本替换 | conten |
th:object | 替换对象 | `` |
th:value | 属性赋值 | `` |
th:with | 变量赋值运算 | `` |
th:style | 设置样式 | th:style="'display:' + @{(${sitrue} ? 'none' : 'inline-block')} + ''" |
th:onclick | 点击事件 | th:onclick="'getCollect()'" |
th:each | 属性赋值 | tr th:each="user,userStat:${users}"> |
th:if | 判断条件 | `` |
th:unless | 和th:if判断相反 | Login |
th:href | 链接地址 | Login /> |
th:switch | 多路选择 配合th:case 使用 | `` |
th:case | th:switch的一个分支 | User is an administrator |
th:fragment | 布局标签,定义一个代码片段,方便其它地方引用 | `` |
th:include | 布局标签,替换内容到引入的文件 | /> |
th:replace | 布局标签,替换整个标签到引入的文件 | `` |
th:selected | selected选择框 选中 | th:selected="(${xxx.id} == ${configObj.dd})" |
th:src | 图片类地址引入 | `` |
th:inline | 定义js脚本可以使用变量 | `` |
th:action | 表单提交的地址 | `` |
th:remove | 删除某个属性 | |
th:attr | 设置标签属性,多个属性可以用逗号分隔 | 比如th:attr="src=@{/image/aa.jpg},title=#{logo}" ,此标签不太优雅,一般用的比较少。 |
-
引入依赖 compile(‘org.springframework.boot:spring-boot-starter-thymeleaf’)
-
创建模板
template 文件夹下新建 login.html:
特别注意引入名称空间
xmlns:th="http://www.thymeleaf.org"
<!doctype html>
<!--注意:引入thymeleaf的名称空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p th:text="'hello SpringBoot'">hello thymeleaf</p>
</body>
</html>
- 编写控制器
package com.hncj.spring.boot.thymeleaf.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // 如果是 Rest 怎么办? new ModelAndView("index")
public class IndexController {
@GetMapping("home")
public String index() {
return "index";
}
}
- 访问即可