欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot-模板引擎Thymeleaf的使用

程序员文章站 2024-02-29 17:43:58
...

SpringBoot-模板引擎Thymeleaf的使用
模板引擎
模板引擎是为了是用户界面与业务数据分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
相关配置

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

在application.properties中添加配置

spring.thymeleaf.cache=false

赋值、字符串拼接
页面string.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8"></meta>
 <title>Example String </title>
</head>
<body>
 <div>
 <h1>text</h1>
 <p th:text="${userName}">ceshi</p>
 <span th:text="'Welcome to our application, ' + ${userName} + '!'"></span>
 <br/>
 <span th:text="|Welcome to our application, ${userName}!|"></span>
 </div>
</body>
</html>

后端代码(传值)

@RequestMapping("/string")
public String string(ModelMap map) {
 map.addAttribute("userName", "baidu");
 return "string";
}

启动项目后在浏览器输入网址:http://localhost:8080/string,结果如下

text

baidu

Welcome to our application,baidu!
Welcome to our application,baidu!

条件判断if/Unless

Thymeleaf使用th:if和th:unless属性进行条件判断
页面if.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8"></meta>
 <title>Example If/Unless </title>
</head>
<body>
<div >
 <h1>If/Unless</h1>
 <a th:if="${flag == 'yes'}" th:href="@{http://www.baidu.com/}"> home </a>
 <br/>
 <a th:unless="${flag != 'no'}" th:href="@{http://www.baidu.com/}" >ityoukn
ow</a>
</div>
</body>
</html>

后端代码(传值)

@RequestMapping("/if")
public String ifunless(ModelMap map) {
 map.addAttribute("flag", "yes");
 return "if";
}

启动项目后在浏览器输入网址:http://localhost:8080/if,结果如下

If/Unless

home 

for循环

首先在后端定义一个用户列表:

private List<User> getUserList(){
 List<User> list=new ArrayList<User>();
 User user1=new User("⼤",12,"123456");
 User user2=new User("⼩",6,"123563");
 User user3=new User("纯洁",66,"666666");
 list.add(user1);
 list.add(user2);
 list.add(user3);
 return list;
}

页面list.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="UTF-8"></meta>
 <title>Example If/Unless </title>
</head>
<body>
<div >
 <h1>for循环</h1>
 <table>
 <tr th:each="user,iterStat : ${users}">
 <td th:text="${user.name}">neo</td>
 <td th:text="${user.age}">6</td>
 <td th:text="${user.pass}">213</td>
 <td th:text="${iterStat.index}">index</td>
 </tr>
 </table>
</div>
</body>
</html>

iterStat-状态变量,具体属性有:
·index,当前迭代对象的index-从0开始计算
·count,当前迭代对象的index-从1开始计算
·size,被迭代对象的大小
·current,当前迭代变量
·even/odd,布尔值,当前循环是否是偶数/奇数-从0开始计算
·first,布尔值,当前循环是否是第一个
·last,布尔值,当前循环是否是最后一个
后端代码(传值)

@RequestMapping("/list")
public String list(ModelMap map) {
 map.addAttribute("users", getUserList());
 return "list";
}

启动项目后在浏览器输入网址:http://localhost:8080/list,结果如下

for 循环
⼤ 12 123456 0
⼩ 6 123563 1
纯洁 66 666666