共计 2743 个字符,预计需要花费 7 分钟才能阅读完成。
1.Thymeleaf 简介 Thymeleaf 是个 XML/XHTML/HTML5 模板引擎,可以用于 Web 与非 Web 应用 Thymeleaf 的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模,Thymeleaf 的可扩展性也非常棒。你可以使用它定义自己的模板属性集合, 这样就可以计算自定义表达式并使用自定义逻辑,Thymeleaf 还可以作为模板引擎框架。2. 引入 Thymeleaf
引入依赖
在 maven(pom.xml)中直接引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
配置 Thymeleaf
在 application.yml 配置 Thymeleaf
server:
port: 8000
spring:
thymeleaf:
cache: false # 关闭页面缓存
encoding: UTF-8 # 模板编码
prefix: classpath:/templates/ # 页面映射路径
suffix: .html # 试图后的后缀
mode: HTML5 # 模板模式
# 其他具体配置可参考 org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties
# 上面的配置实际上就是注入该类的属性值
demo 示例
创建 IndexController
@Controller
public class IndexController {
// 返回视图页面
@RequestMapping(“index”)
public String index(){
return “index”;
}
}
创建 index.html
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Title</title>
</head>
<body>
Hello Thymeleaf!
</body>
</html>
创建 TestController
@RestController
public class TestController {
// 返回整个页面
@RequestMapping(“/test”)
public ModelAndView test(){
return new ModelAndView(“test”);
}
}
创建 test.html
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Title</title>
</head>
<body>
Hello Thymeleaf! </br>
By: ModelAndView
</body>
</html>
3. 测试结果 4.Thymeleaf 基础语法及使用 1. 引入标签 html 标签里引入 xmlns:th=”http://www.thymeleaf.org” 才能使用 th:* 这样的语法 2. 引入 URL @{…} 例如:
<a th:href=”@{http://www.baidu.com}”> 绝对路径 </a> 是访问绝对路径下的 URL,<a th:href=”@{/}”> 相对路径 </a> 是访问相对路径下的 URL。
<a th:href=”@{css/bootstrap.min.css}”> 是引入默认的 static 下的 css 文件夹下的 bootstrap 文件,类似的标签有: th:href 和 th:src
3. 获取变量 通过 ${} 取值,对于 JavaBean 的话,使用变量名. 属性名获取 4. 字符串替换
<span th:text=”‘Welcome to our application, ‘ + ${user.name} + ‘!'”></span>
或者
<span th:text=”|Welcome to our application, ${user.name}!|”></span>
注意:|…| 中只能包含变量表达式 ${…},不能包含其他常量、条件表达式等
5. 运算符 在表达式中可以使用各类算术运算符 例如 (+, -, *, /, %) 例如:th:with=”isEven=(${stat.number} % 1 == 0)” 逻辑运算符 (>, <, <=,>=,==,!=) 需要注意的是使用 <,> 的时候需要转义
th:if=”${stat.number} > 1″
th:text=”‘Execution mode is ‘ + ((${execMode} == ‘dev’)? ‘Development’ : ‘Production’)”
6. 条件 if/unless th:if 是该标签在满足条件的时候才会显示,unless 是不成立时候才显示
<a th:href=”@{/login}” th:unless=${user.number != null}>Login</a>
switch thymeleaf 支持 switch 结构,默认属性(default)用 * 表示
<div th:switch=”${user.role}”>
<p th:case=”‘admin'”>User is an administrator</p>
<p th:case=”#{roles.manager}”>User is a manager</p>
<p th:case=”*”>User is some other thing</p>
</div>
7. 循环
<tr th:each=”prod : ${prods}”>
<td th:text=”${prod.name}”>Onions</td>
<td th:text=”${prod.price}”>2.41</td>
<td th:text=”${prod.inStock}? #{true} : #{false}”>yes</td>
</tr>
8.Utilities
内置在 Context 中, 可以直接通过 #访问
#dates
#calendars
#numbers
#strings
arrays
lists
sets
maps
…
5. 小结 本文讲述了如何在 Spring Boot 中引入模板引擎 Thymeleaf 以及 Thymeleaf 基础语法和实际使用
本文 GitHub 地址:https://github.com/ishuibo/Sp…