FreeMarker是一個模板引擎 ,一個基於模板生成文本輸出的通用工具,使用純Java編寫,FreeMarker被設計用來生成HTML Web頁面(爲了提高頁面的訪問速度,把頁面靜態化),特別是基於MVC模式的應用程序 FreeMarker的操作過程 是這樣的:定義模板文件,準備好數據,通過模板顯示準備的數據(如下圖):
FreeMarker與容器無關,因爲它並不知道HTTP或Servlet;FreeMarker同樣可以應用於非Web應用程序環境 FreeMarker更適合作爲Model2框架(如Struts)的視圖組件,你也可以在模板中使用JSP標記庫 FreeMarker是免費的 而且你還可以通過Eclipse的插件 來編輯FreeMarker,經過驗證,FreeMarker 最好的 Eclipse 編輯插件是 JBoss Tools 。 FreeMarker 特性 1 、通用目標 能夠生成各種文本: HTML 、 XML 、 RTF 、 Java 源代碼等等 易於嵌入到你的產品中:輕量級;不需要 Servlet 環境 插件式模板載入器:可以從任何源載入模板,如本地文件、數據庫等等 你可以按你所需生成文本:保存到本地文件;作爲 Email 發送;從 Web 應用程序發送它返回給 Web 瀏覽器 2 、強大的模板語言 所有常用的指令: include 、 if/elseif/else 、循環結構 在模板中創建和改變變量 幾乎在任何地方都可以使用複雜表達式來指定值 命名的宏,可以具有位置參數和嵌套內容 名字空間有助於建立和維護可重用的宏庫,或者將一個大工程分成模塊,而不必擔心名字衝突 輸出轉換塊:在嵌套模板片段生成輸出時,轉換 HTML 轉義、壓縮、語法高亮等等;你可以定義自己的轉換 3 、通用數據模型 FreeMarker 不是直接反射到 Java 對象, Java 對象通過插件式對象封裝,以變量方式在模板中顯示 你可以使用抽象(接口)方式表示對象( JavaBean 、 XML 文檔、 SQL 查詢結果集等等),告訴模板開發者使用方法,使其不受技術細節的打擾 4 、爲 Web 準備 在模板語言中內建處理典型 Web 相關任務(如 HTML 轉義)的結構 能夠集成到 Model2 Web 應用框架中作爲 JSP 的替代 支持 JSP 標記庫 爲 MVC 模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員 5 、智能的國際化和本地化 字符集智能化(內部使用 UNICODE ) 數字格式本地化敏感 日期和時間格式本地化敏感 非 US 字符集可以用作標識(如變量名) 多種不同語言的相同模板 6 、強大的 XML 處理能力 <#recurse> 和 <#visit> 指令( 2.3 版本)用於遞歸遍歷 XML 樹 在模板中清楚和直覺的訪問 XML 對象模型 開源論壇 JForum 就是使用了 FreeMarker 做爲頁面模板。
|
下一節:FreeMarker入門教程