SpringBoot中的Freemarker 模板


Freemarker模板概述:

  在使用Freemarker模板之前我們要先知道一些關於Freemarker模板的知識,首先FreeMarker 是一款模板引擎:即一種基於模板和要改變的數據,並用來生成輸出文本(HTML 網頁,電子郵件,配置文件,源代碼等)的通用工具。它不是面向最終用戶的,而是一個 Java 類庫,是一款程序員可以嵌入他們所開發產品的組件。

  其次FreeMarker是免費的,基於Apache許可證2.0版本發布。其模板編寫為FreeMarker Template Language (FTL)。屬於一種簡單的,專用的語言。比如數據庫查詢和業務運算之后, 模板顯示已經准備好的數據。在模板中,你可以專注於如何展現數據,而在模板之外可以專注於要展示什么數據。

  總體上,模板和數據模型是 FreeMarker 來生成輸出所必須的組成部分:模板 + 數據模型 = 輸出,Freemarker 的作用主要是將動態頁面轉換成偽靜態 html 頁面,提高搜索引擎的收錄。具體框架的介紹和用法可參考 http://freemarker.foofun.cn(官網)。

Freemarker 模板語法: 模板的默認后綴為.ftl,內容除了靜態內容外,其數據模型主要包括標量、指令、方法等
  標量的四種類型:
        1、布爾值。
        2、數字。
        3、字符串。
        4、日期類型(子類型:日期(沒有時間部分),時間或者日期-時間)
  總體的結構:
          1、文本:文本會照着原樣來輸出
        2、插值:這部分的輸出會被計算的值來替換。插值由 ${ and } 所分隔(或者 #{ and }
        3、FTL 標簽:FTL標簽和HTML標簽很相似,但是它們卻是給FreeMarker的指示, 而且不會打印在輸出內容中(FTL標簽也被稱為 指令)
        4、注釋:注釋和HTML的注釋也很相似,但它們是由 <#-- 和 -->來分隔的。注釋會被FreeMarker直接忽略, 更不會在輸出內容中顯示
        5、一個freemarker模板里可以有文本、插值、ftl(指令)、注釋
  Freemarker中的指令:
        1、if指令:作用:使用 if 指令可以有條件地跳過模板的一些片段
             語法結構:
                

 

        2、list指令(遍歷集合): 作用:當需要列表顯示內容時,list指令是必須的。list 指令執行在 list 開始標簽和 list 結束標簽

                   語法結構:

                

 

 

                  注意事項:list是個對象,可以通過打點調用屬性

 

        3、include 指令: 作用:用於在模板中插入另外一個 FreeMarker 模板文件

 

                 語法:<#include ".../test.ftl">

 

 SpringBoot集成Freemarker模版:

    1、創建maven項目

    2、引入freemarker模板所需要的依賴文件

      

 

    3、配置freemarker所需要配置的屬性

      

 

    4、編寫controller准備一些測試數據

    5、編寫ftl模板

    6、運行項目,測試結果

freemarker的優勢:
    1、性能、普通的頁面 freemarker 性能較差(雖然只是幾毫秒到十幾毫秒的差距)。但是在復雜頁面上(包含大量判斷、日期金額格式化)的頁面上,freemarker 的性能比使用 tag 和 el 的 jsp 好

    2、內置大量常用功能。比如 html 過濾,日期金額格式化等等,使用非常方便
    3、宏定義比 jsp tag 方便
    4、支持 jsp 標簽
    5、可以實現嚴格的 mvc 分離


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM