FreeMarker 可是難道更新一次啊,這次更新版本是在 2月29日發(fā)布的。

該版本修復(fù)了兩個(gè)重要的安全 bug,詳情請(qǐng)看這里。另外新增對(duì) JSON 字符串進(jìn)行處理的方法 json_string.還有其他方面的小改動(dòng),請(qǐng)看官方發(fā)行說(shuō)明。

FreeMarker特性

1、通用目標(biāo)

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

易于嵌入到你的產(chǎn)品中:輕量級(jí);不需要Servlet環(huán)境

插件式模板載入器:可以從任何源載入模板,如本地文件、數(shù)據(jù)庫(kù)等等

你可以按你所需生成文本:保存到本地文件;作為Email發(fā)送;從Web應(yīng)用程序發(fā)送它返回給Web瀏覽器

2、強(qiáng)大的模板語(yǔ)言

所有常用的指令:include、if/elseif/else、循環(huán)結(jié)構(gòu)

在模板中創(chuàng)建和改變變量

幾乎在任何地方都可以使用復(fù)雜表達(dá)式來(lái)指定值

命名的宏,可以具有位置參數(shù)和嵌套內(nèi)容

名字空間有助于建立和維護(hù)可重用的宏庫(kù),或者將一個(gè)大工程分成模塊,而不必?fù)?dān)心名字沖突

輸出轉(zhuǎn)換塊:在嵌套模板片段生成輸出時(shí),轉(zhuǎn)換HTML轉(zhuǎn)義、壓縮、語(yǔ)法高亮等等;你可以定義自己的轉(zhuǎn)換

3、通用數(shù)據(jù)模型

FreeMarker不是直接反射到Java對(duì)象,Java對(duì)象通過(guò)插件式對(duì)象封裝,以變量方式在模板中顯示

你可以使用抽象(接口)方式表示對(duì)象(JavaBean、XML文檔、SQL查詢結(jié)果集等等),告訴模板開發(fā)者使用方法,使其不受技術(shù)細(xì)節(jié)的打擾

4、為Web準(zhǔn)備

在模板語(yǔ)言中內(nèi)建處理典型Web相關(guān)任務(wù)(如HTML轉(zhuǎn)義)的結(jié)構(gòu)

能夠集成到Model2 Web應(yīng)用框架中作為JSP的替代

支持JSP標(biāo)記庫(kù)

為MVC模式設(shè)計(jì):分離可視化設(shè)計(jì)和應(yīng)用程序邏輯;分離頁(yè)面設(shè)計(jì)員和程序員

5、智能的國(guó)際化和本地化

字符集智能化(內(nèi)部使用UNICODE)

數(shù)字格式本地化敏感

日期和時(shí)間格式本地化敏感

非US字符集可以用作標(biāo)識(shí)(如變量名)

多種不同語(yǔ)言的相同模板

6、強(qiáng)大的XML處理能力

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

在模板中清楚和直覺(jué)的訪問(wèn)XML對(duì)象模型

開源論壇 JForum 就是使用了 FreeMarker 做為頁(yè)面模板。

分享到

youjia

相關(guān)推薦