1、通用目標
l 能夠生成各種文本:Html、xml、RTF、java源代碼等等
l 易于嵌入到你的產品中:輕量級;不需要Servlet環境
l 插件式模板載入器:可以從任何源載入模板,如本地文件、數據庫等等
l 你可以按你所需生成文本:保存到本地文件;作為Email發送;從Web應用程序發送它返回給Web瀏覽器
2、強大的模板語言
l 所有常用的指令:include、if/elseif/else、循環結構
l 在模板中創建和改變變量
l 幾乎在任何地方都可以使用復雜表達式來指定值
l 命名的宏,可以具有位置參數和嵌套內容
l 名字空間有助于建立和維護可重用的宏庫,或者將一個大工程分成模塊,而不必擔心名字沖突
l 輸出轉換塊:在嵌套模板片段生成輸出時,轉換HTML轉義、壓縮、語法高亮等等;你可以定義自己的轉換
3、通用數據模型
l FreeMarker不是直接反射到Java對象,Java對象通過插件式對象封裝,以變量方式在模板中顯示
l 你可以使用抽象(接口)方式表示對象(JavaBean、XML文檔、SQL查詢結果集等等),告訴模板開發者使用方法,使其不受技術細節的打攪
4、為Web預備
l 在模板語言中內建處理典型Web相關任務(如HTML轉義)的結構
l 能夠集成到Model2 Web應用框架中作為jsp的替代
l 支持JSP標記庫
l 為MVC模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員
5、智能的國際化和本地化
l 字符集智能化(內部使用UNICODE)
l 數字格式本地化敏感
l 日期和時間格式本地化敏感
l 非US字符集可以用作標識(如變量名)
l 多種不同語言的相同模板
6、強大的XML處理能力
l <#recurse> 和<#visit>指令(2.3版本)用于遞歸遍歷XML樹
l 在模板中清楚和直覺的訪問XML對象模型
新聞熱點
疑難解答