經過前幾天的學習,對spring boot 已經有了基本的瞭解,如何創建項目,如何連接數據庫進行CRUD操作都能實現,今天學習如何使用spring boot支持的模板引擎渲染web頁面。
首先介紹一下在spring boot中如何訪問靜態資源,進行web開發,靜態資源是必不可少的。Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:
/static
/public
/resources
/META-INF/resources
其實項目剛創建完成的時候,ide就自動在java/main/resources/目錄下給我們創建了一個static文件夾,在這個裡面放我們常用的js、css、images就行
這樣建好文件夾之後,可以往images文件夾中放入一張圖片,啟動項目,測試一下是否能訪問,路徑是://localhost:8080/images/XXX.png。
下面就介紹一下在spring boot中如何使用模板引擎渲染web頁面
Spring Boot提供了默認配置的模板引擎主要有以下幾種:
Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
下面我將介紹一下如何使用這些模板引擎。
1.Thymeleaf:Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於Apache License 2.0許可,由Daniel Fernández創建,該作者還是Java加密庫Jasypt的作者。Thymeleaf提供了一個用於整合Spring MVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標籤屬性添加到模板中即可。
在pom中加入依賴
新建一個html頁面
在controller中傳參以及跳轉
啟動項目,訪問這個頁面
2.FreeMarker:即一種基於模板和要改變的數據,並用來生成輸出文本(HTML網頁、電子郵件、配置文件、源代碼等)的通用工具。它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發產品的組件。FreeMarker是免費的,基於Apache許可證2.0版本發佈。其模板編寫為FreeMarker Template Language(FTL),屬於簡單、專用的語言。需要準備數據在真實編程語言中來顯示,比如數據庫查詢和業務運算,之後模板顯示已經準備好的數據。在模板中,主要用於如何展現數據,而在模板之外注意於要展示什麼數據。
和Thymeleaf模板使用方法類似,首先引入依賴
新建一個頁面:indexfree.ftl
controller
訪問
3.Velocity:Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅使用簡單的模板語言(template language)來引用由java代碼定義的對象。當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。
首先還是引入依賴
新建indexv.vm
controller
然後訪問,這時候如何你用的是1.5及以上的spring boot版本,可能會出現問題
簡單查了一下原因,網上說springboot1.5和以上版本 已經完全拋棄了velocity視圖模板,所以會出現這個問題,作為測試,我將版本降到了1.4.7,啟動之後訪問正常,如果有需要1.5版本及以上版本使用這個模板,需要另外尋找解決辦法,在此就不做說明。
以上簡單介紹了一下前三個模板引擎,Groovy和Mustache資料較少,目前還不會使用,有這方面資料的朋友希望可以分享學習一下。