Spring官方支持的服務的渲染模板中,並不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf與SpringMVC的視圖技術,及SpringBoot的自動化配置集成非常完美,幾乎沒有任何成本,你只用關註Thymeleaf的語法即可。 Thymeleaf的特點 動靜結合: ...
Spring官方支持的服務的渲染模板中,並不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf與SpringMVC的視圖技術,及SpringBoot的自動化配置集成非常完美,幾乎沒有任何成本,你只用關註Thymeleaf的語法即可。
Thymeleaf的特點
-
動靜結合:Thymeleaf 在有網路和無網路的環境下皆可運行,即它可以讓美工在瀏覽器查看頁面的靜態效果,也可以讓程式員在伺服器查看帶數據的動態頁面效果。這是由於它支持 html 原型,然後在 html 標簽里增加額外的屬性來達到模板+數據的展示方式。瀏覽器解釋 html 時會忽略未定義的標簽屬性,所以 thymeleaf 的模板可以靜態地運行;當有數據返回到頁面時,Thymeleaf 標簽會動態地替換掉靜態內容,使頁面動態顯示。
-
開箱即用:它提供標準和spring標準兩種方言,可以直接套用模板實現JSTL、 OGNL表達式效果,避免每天套模板、該jstl、改標簽的困擾。同時開發人員也可以擴展和創建自定義的方言。
-
多方言支持:Thymeleaf 提供spring標準方言和一個與 SpringMVC 完美集成的可選模塊,可以快速的實現表單綁定、屬性編輯器、國際化等功能。
-
與SpringBoot完美整合,SpringBoot提供了Thymeleaf的預設配置,並且為Thymeleaf設置了視圖解析器,我們可以像以前操作jsp一樣來操作Thymeleaf。代碼幾乎沒有任何區別,就是在模板語法上有區別
pom.xml
<!--thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
application.yml (encoding:UTF-8解決中文亂碼)
spring:
#開始thymeleaf設置
thymeleaf:
#禁用模板緩存
cache: false
#設置文字消息
messages:
encoding: UTF-8
basename: message_zh_CN
controller:
@Controller
@RequestMapping("/test")
public class MyThymeleaf {
@GetMapping("/h")
public String t(Model model){
String title="標題";
String message="first thymeleaf !!";
model.addAttribute("message",message);
model.addAttribute("title",title);
return "index";
}
}
index.html
<!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> ------ 聲明當前文件是 thymeleaf, 裡面可以用th開頭的屬性 <head> <meta charset="UTF-8"> <title>首頁</title> </head> <body> <h1 th:text="#{title}"></h1> <h1 th:text="${message}"></h1> </body> </html>
啟動後訪問:http://localhost:8080/test/h