Thymeleaf-springboot官方推荐模板引擎

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/82754346

基础

1.模板引擎

thymeleaf是java的模板引擎,把界面公用的部分进行提取,能够处理html,xml,js,css
其他常见模板引擎jsp,freemarker

  1. 是自然模板,原型即界面
  2. 语法优雅易懂
  3. 支持OGNL,SpringEL

2.标准方言

<!--引入命名空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
	<head></head>
	<body>
		<!--第一种常用-->	
		<span th:text="...">
		<span data-th-text="...">
	</body>
<html>

3.表达式语法

简单表达式
变量表达式(后台设置): ${…}
选择表达式: *{…}
比如*{name} 从可用值中查找name,如果有上下文,比如上层是object,则查object中的name属性。
<span th:text="${book.author.name}">
<!--book取的是上下文的变量-->
<div th:object="${book}">
	<!--取出book对象的tittle属性-->
	<span th:text="*{title}"></span>
</div>
消息表达式: #{…}
国际化时使用,也可以使用内置的对象,比如date格式化数据
根据key找值
<span th:text="#{header.city}">
链接表达式: @{…}
用来配合link src href使用的语法
可以是相对的,可以使绝对的
<a th:href="@{../   ~/  http://sdaf}" href="默认href">...</a>
片段表达式: ~{…}
用来引入公共部分代码片段,并进行传值操作使用的语法。

文字

  • 文本: ‘one text’,’another text’,…
  • 数字: 1,2,1.2,…
  • 布尔: true,false
  • 空值:null
  • 单词: something,main,name,…
运算符
比较:> , < , >= , <= ( gt , lt , ge , le )
等于:== , != ( eq , ne )
条件 th:text="${user.name} ? "暗暗" : _"
无操作 _

4.使用实例

list到前台table遍历
前端存放list

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		
Map<String, Object> m = new HashMap<String, Object>();
m.put("name", "name1");
m.put("age", "1");
list.add(m);
 
m = new HashMap<String, Object>();
m.put("name", "name2");
m.put("age", "2");
list.add(m);
 
model.addAttribute("list", list);

前端显示

<table border="1">
	<tr th:each="m : ${list}"><!-- 其中m是个临时变量,像for(User u : userList)那样中的u-->
		<td th:text="${m.name}"/>
		<td th:text="${m.age}"/>
	</tr>
</table>

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/82754346