Thymeleaf-springboot官方推薦模板引擎
阿新 • • 發佈:2018-12-10
基礎
1.模板引擎
thymeleaf是java的模板引擎,把介面公用的部分進行提取,能夠處理html,xml,js,css
其他常見模板引擎jsp,freemarker
- 是自然模板,原型即介面
- 語法優雅易懂
- 支援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>