歡迎您光臨本站 註冊首頁

FreeMarker 2.3.23 RC1 發布,Java 模板引擎

←手機掃碼閱讀     admin @ 2015-06-22 , reply:0

FreeMarker 2.3.23 RC1 發布,最終版本計劃 7 月 5 日發布!

值得關注的改進 (完整文檔請看這裡):

  • Listing-related (#list) specialized convenience features that target some of the most typical tasks in templates:

    • New #list directive child directives, #else and #items deal with the special cases with 0-length lists. #sep makes inserting separators between items much easier than it was with if + var_has_next.

    • New built-ins that act on loop variables:            var?index (deprecates var_index), var?counter (1-based index),            var?has_next (deprecates var_has_next),            var?item_parity (returns "odd" or "even"),            var?item_cycle("lightRow", "darkRow"), and some more.

  • Convenience assignment operators, like in <#assign counter++> and <#assign counter += 2>

  • True ternary operator equivalent: someBoolean?then(whenTrue, whenFalse)

  • Switch as expression: someValue?switch(case1, result1, case2, result2, ... caseN, resultN, defaultResult)

  • FTL now supports camel case for the identifiers that are part of the template language. For example, <#noEscape>${x?upperCase}</#noEscape> or <#setting numberFormat="0.0"> or <#ftl stripText=true> are valid. You can just start using camel case without configuring anything, however, within the same template, FreeMarker will require you to use the same naming convention for all identifiers that are part of the template language. (Also, a certain naming convention can be enforced for all templates from configuration.)

  • 更多 FreemarkerServlet 配置模板載入,現在可以從 Servlet 3.0 META-INF/resources 載入

  • 各種 bug 修復

FreeMarker 2.3.23-rc01 下載 (Binary-only for Google App Engine is here...)

FreeMarker是一個模板引擎,一個基於模板生成文本輸出的通用工具,使用純Java編寫

FreeMarker被設計用來生成HTML Web頁面,特別是基於MVC模式的應用程序

雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數據,由FreeMarker生成頁面,通過模板顯示準備的數據(如下圖)



FreeMarker不是一個Web應用框架,而適合作為Web應用框架一個組件

FreeMarker與容器無關,因為它並不知道HTTP或Servlet;FreeMarker同樣可以應用於非Web應用程序環境

FreeMarker更適合作為Model2框架(如Struts)的視圖組件,你也可以在模板中使用JSP標記庫

FreeMarker是免費的

而且你還可以通過Eclipse的插件來編輯FreeMarker,經過驗證,FreeMarker 最好的 Eclipse 編輯插件是 JBoss Tools。

FreeMarker特性

1、通用目標

能夠生成各種文本:HTMLXMLRTFJava源代碼等等

易於嵌入到你的產品中:輕量級;不需要Servlet環境

插件式模板載入器:可以從任何源載入模板,如本地文件、資料庫等等

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

2、強大的模板語言

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

在模板中創建和改變變數

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

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

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

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

3、通用數據模型

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

你可以使用抽象(介面)方式表示對象(JavaBeanXML文檔、SQL查詢結果集等等),告訴模板開發者使用方法,使其不受技術細節的打擾

4、為Web準備

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

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

支持JSP標記庫

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

5、智能的國際化和本地化

字符集智能化(內部使用UNICODE

數字格式本地化敏感

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

US字符集可以用作標識(如變數名)

多種不同語言的相同模板

6、強大的XML處理能力

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

在模板中清楚和直覺的訪問XML對象模型

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

Javadoc:http://www.ostools.net/apidocs/apidoc?api=freemarker


[admin ] FreeMarker 2.3.23 RC1 發布,Java 模板引擎已經有539次圍觀

http://coctec.com/news/all/show-post-204781.html