freemarker

freemarker

用Java語言編寫的模闆引擎
FreeMarker是一款模闆引擎: 即一種基于模闆和要改變的數據,并用來生成輸出文本(HTML網頁,電子郵件,配置文件,源代碼等)的通用工具。它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發産品的組件。[1]
    中文名:福瑞馬克 外文名: 适用領域: 所屬學科: 英文名:FreeMarker 類别:模闆引擎 特點:通用性高,模闆語言強大 最新版本:FreeMarker 2.3.22

發展曆史

2002年3月18日,FreeMarker的第一個發布候選版2.0 RC1發布,又經過了2個候選版的BUG修複之後,正式版的Free Marker2.0于2002年4月18日發布。

2002年10月17日,FreeMarker 2.1 發布,該版本并不能與2.0版本兼容,所以使用者如果不是新建工程的話,需要重新審視已有的代碼和模版。在此之後,2.2版本之前,共更新了5個版本。

2003年3月27日,FreeMarker 2.2 發布,這個版本引入了一些非常重要的新特性,但是有一些功能卻不能逆向兼容。在2.2的版本中,可能最重要的新特性就是namespace支持,這使得FreeMarker成為了合适大規模項目的工具,因為它允許不同頁面分享的宏和變量沒有任何名稱空間沖突。同時,宏也變得更加強大,因為他們可以調用可選目标,并且宏現作為一流的變量,可以傳遞給其他宏使用。此外2.2中另一個吸引人的特性為,FreeMarker可以利用由第三方所寫的JSP标記庫。在此之後,2.3版本之前,共更新了8個版本。

2004年6月15日,FreeMarker 2.3 發布。

2009年12月10日,FreeMarker 2.3.16 發布。

2011年05月17日,FreeMarker 2.3.17 發布,該版本主要修複了安全的bug,也包含一些很小的新特性。

2011年05月22日,FreeMarker 2.3.18 發布, 修複JSP 标簽庫相關的bug。

2012年2月29日,FreeMarker 2.3.19 發布,該版本修複了兩個重要的安全 bug,詳情請看這裡。另外新增對 JSON 字符串進行處理的方法 json_string.還有其他方面的小改動

2015年3月1日,FreeMarker 2.3.22 發布,在FTL模闆上做了一些更改,在Java上做了一些更改。

特性

通用

能夠生成各種文本:HTML、XML、RTF、Java源代碼等等。

易于嵌入到産品中:輕量級;不需要Servlet環境。

插件式模闆載入器:可以從任何源載入模闆,如本地文件、數據庫等等。

可以按所需生成文本:保存到本地文件;作為Email發送;從Web應用程序發送它返回給Web浏覽器。

強大的模闆語言

所有常用的指令:include、if/elseif/else、循環結構。

在模闆中創建和改變變量。

幾乎在任何地方都可以使用複雜表達式來指定值。

命名的宏,可以具有位置參數和嵌套内容。

名字空間有助于建立和維護可重用的宏庫,或者将一個大工程分成模塊,而不必擔心名字沖突。

輸出轉換塊:在嵌套模闆片段生成輸出時,轉換HTML轉義、壓縮、語法高亮等等;可以定義自己的轉換。

通用數據模型

FreeMarker不是直接反射到Java對象,Java對象通過插件式對象封裝,以變量方式在模闆中顯示。

可以使用抽象(接口)方式表示對象(JavaBean、XML文檔、SQL查詢結果集等等),告訴模闆開發者使用。方法,使其不受技術細節的打擾。

為Web準備

在模闆語言中内建處理典型Web相關任務(如HTML轉義)的結構。

能夠集成到Model2 Web應用框架中作為JSP的替代。

支持JSP标記庫。

為MVC模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員。

智能的國際化和本地化

字符集智能化(内部使用UNICODE)。

數字格式本地化敏感。

日期和時間格式本地化敏感。

非US字符集可以用作标識(如變量名)。

多種不同語言的相同模闆。

強大的XML處理能力

<#recurse> 和<#visit>指令(2.3版本)用于遞歸遍曆XML樹。

在模闆中清楚和直接的訪問XML對象模型。

相關詞條

相關搜索

其它詞條