對於公共頁面(導航欄nav、頁頭head、頁尾footer)的抽取有三種方式:
1)基於iframe進行抽取,這種方式很有效,但比較老了,另外為了頁面的自適應性,還得做不少工作;
2)如果是jsp頁面,則可以通過<%@ include file="head.jsp"%>進行抽取;
3)利用ajax進行頁面加載,但有不少問題。
基於Springboot后台開發框架,JSP雖然還是可以用,但已經強烈推薦使用Thymeleaf模板了,這個時候問題就來了,Thymeleaf模板是html頁面,又不想通過iframe或者ajax的方式,那我們該如何做?
其實,Thymeleaf已經給我們提供了極好的方式,並且不僅僅是頁面,還可以對樣式CSS、Javascript進行抽取。
使用Thymeleaf模板的 th:replace、th:include或th:insert屬性,借助th:fragment屬性來實現。
th:replace----不保留自己的主標簽,保留th:fragment的主標簽
th:include----保留自己的主標簽,不保留th:fragment的主標簽
th:insert----保留自己的主標簽,也保留th:fragment的主標簽
1、公共抽取部分的頁面定義,如mycommon.html
說明:
1)<head th:fragment="commonHeader(title)">
<title th:text="${title}"></title>其中的${title},這樣頁面的標題就靈活了。
2)一般在頁面頭部引入CSS,而在頁尾引入JS,這樣保證頁面出現在用戶面前樣式就已經加載,提高用戶體驗
2、在具體頁面中引入公共部分,如mydemo.html
說明:
th:replace,include,th:insert三者的使用形式皆如:th:include="模板路徑::id"
WEB項目開發中碰到的問題千奇百怪,大家想了解對如何快速的掌握Spring Boot,可以參見視頻:
51CTO:Spring Boot+Bootstrap開發小而完整web項目
騰訊課堂:Spring Boot+Bootstrap開發小而完整web項目
CSDN學院:Spring Boot+Bootstrap開發小而完整web項目
網易雲課堂:Spring Boot+Bootstrap開發小而完整web項目