thymeleaf是spring boot默認的模板引擎,屬於比較新的模板引擎,這個提供了不少新功能,頁面就是原生的html頁面,而且經過標籤的方式能完全的進行先後端分離。一般的時候無論是管理系統仍是網站系統,總會有不少共用的部分,例如header和footer等等。
若是使用的是springboot 1.5.9版本,則它內置的thymeleaf版本是1.4.2,在官網上能夠看到,如今thymeleaf都都已經升級到了3.0版本,對於layout佈局的這種,3.0支持insert標籤。html
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!-- set thymeleaf version --> <thymeleaf.version>3.0.0.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version> </properties>
根據官網的例子,咱們有一個文件footer.html文件,這個文件位於 layout文件夾下,代碼以下java
<!DOCTYPE html>\ <html xmlns:th="http://www.thymeleaf.org"> <body> <div th:fragment="copy"> © 2011 The Good Thymes Virtual Grocery </div> </body> </html>
而後在另一個頁面中引用spring
<div th:replace="layout/footer::copy"></div>
這樣就把剛纔的footer頁面引用進來了.
固然咱們在被引入頁面中也不必定非得使用fragment ,在引用的時候 "::"是一個選擇器。能夠爲footer的div起一個id = 「footer」, 在引用的時候使用 ~{layout/footer::#footer}這樣也能引入。若是不加選擇器,則引用的就是整個頁面,例如像下面這種引用方式後端
<div th:replace="layout/footer"></div>
這樣就會把整個footer.html頁面的內容引用進來springboot
<div th:replace="layout/footer::copy"></div> <div th:insert="~{layout/footer:: copy}"></div> <div th:include="layout/footer::copy"></div>
生成後的代碼前後端分離
<!--replace 在此處,替換div元素--> <div> © 2011 The Good Thymes Virtual Grocery </div> <!--insert 在此處 footer中copy元素的內容會被插入到 div中--> <div><div> © 2011 The Good Thymes Virtual Grocery </div></div> <!--include,footer中的內容會被插入到div中--> <div> © 2011 The Good Thymes Virtual Grocery </div>
仔細觀察生成後的代碼,對這塊thymeleaf這塊的使用就會比較清晰了。這樣該使用哪一個,就會變得比較自如。佈局