1. 程式人生 > >Thymeleaf-springboot官方推薦模板引擎

Thymeleaf-springboot官方推薦模板引擎

基礎

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>