聲明一:文章不是關鍵,關鍵是放在本文末尾的FreeMarker測試項目鏈接,建議讀者下載測試項目(測
試代碼已寫好)運行,自己進行測試理解。
聲明二:本文以純圖片的形式簡單介紹FreeMarker的使用,具體文字版測試示例項目可去本文末下載。
FreeMarker是一款模板引擎:即一種基於模板和要改變的數據,並用來生成輸出文本(HTML網頁、電子郵件、配置文件、源代碼等)的通用工具。
FreeMarker功能是:
注:雖然模板文件可以是任意後綴名的文件,但是我們一般都約定俗成的將模板文件後綴名改爲ftl;這樣一來,任何
人一看就知道誰是FreeMarker的模板文件。
注:傳入的數據必須要有一個key才行,FreeMarker模板語言以該key爲根,並按照其一定的表達式語言,定位到根下的
各個節點,從而取出相應的數據。
追注:可類比JSP進行理解。
FreeMarker一般的使用方式:
模板文件(normal.ftl)是這樣的:
代碼是這樣的:
提示:上述代碼需要引入FreeMarker的Jar包。
結果文件(normal.html)是這樣的:
SpringBoot整合FreeMarker:
第一步:在pom.xml中引入相關的依賴。
注:這裏引入spring-boot-starter-freemarker纔是關鍵;其餘依賴都可以不引入;不過考慮到在接下來會給一個使用示
例,所以還引入了web支持、快速快發lombok、熱部署devtools;當然,test是基本依賴。
第二步:編輯系統配置文件application.properties,指定以什麼後綴名的文件作爲模板、指定在哪個文件夾下去找模板文件。
注:更多配置可詳見源碼或查閱相關文檔。
SpringBoot通過WEB使用FreeMarker的方式:
關鍵點說明:
-
給控制層方法額外加一個SpringMVC數據處理模型(Model或ModelMap或Map)。
注:對於那些請求本身就帶有參數的方法,只需要額外加數據處理模型即可,不影響原參數的獲取。 -
方法返回值爲String,返回模板文件(相對於spring.freemarker.template-loader-path參數指定的文件夾)的文件名路徑(不要後綴)。
無參請求的使用方式如:
模板位置在:
使用方式,如:
注:將模板model_test.ftl所需的數據放入Model或ModelMap或Map中即可。
有參請求的使用方式如:
模板位置在:
使用方式,如:
注:數據處理模型Model、ModelMap、Map任選其一即可,上圖中是以Model示例的。
FreeMarker常用語法(放大圖片看):
提示:更多用法可瀏覽官網。
筆者寄語:
希望讀者根據以下鏈接,下載項目,自己運行項目進行理解,這裏先說明一下項目結構: