開源 Java 模板引擎 HTTL 1.0.0 發布

jopen 12年前發布 | 10K 次閱讀 模板引擎

  HTTL 是一個適用于 HTML 輸出的開源 JAVA 模板引擎,可用于替代 JSP 頁面,它的指令類似于 Velocity。

  HTTL 采用類似于 JSP 的原理,將模板編譯成 Java 字節碼運行,但比 JSP 的 EL 更進一步,使用強類型推導,減少運行期反射和轉型,更加快速.

  項目首頁:http://httl.github.com

  源碼地址:https://github.com/httl/httl

  下載地址:https://github.com/httl/httl/downloads

  變更日志:

  修復問題:

  1. 解決 foreach 和 if/else 聯合使用時狀態錯亂問題。

  2. 解決 getIsXxx 屬性解析出錯問題。

  3. 解決文件加載未使用指定編碼問題。

  4. 解決部分文件流打開后未關閉問題。

  5. 解決迭代 map 出錯的問題,以及 Map 數據的類型推斷問題。

  新功能:

  6. 支持單獨的 macro 文件定義宏方法,通過 import.macros 配置加載。

  7. 增加 gt,ge,lt,le 符號,在屬性語法時避免表達式出現 HTML 標簽符。

  兼容優化:

  8. 靜態方法不走 engine.getFunction ()查找實例,直接調用類的靜態方法。

  9. 將所有配置的獲取改為 setter 注入,比如:setInputEncoding (String)。

  10. 編譯 Macro 時直接注入到模板屬性中,并增加 template.getMacros ()方法。

  11. 渲染過程不改變傳入 Map 的狀態,保證模板渲染的無副作用性,以及多次渲染的冪等性。

  12. 優化 Profiler 性能分析發現的 ArrayIterator 引起的性能損耗問題。

  13. 將文本內容不編譯到字節碼中,改為從緩存中獲取,防止內存 Perm 區過大,并提供 source.in.class 和 text.in.class 開關項。

  不兼容優化:(注:從舊版本升級到1.0.0請注意不兼容優化項)

  14. 將 define 指令名改成 var,以免和 velocity 的 define 指令理解混淆,影響所有舊模板,用戶可全文替換。

  15. 去掉 block 指令,用#set (xxx = xxxmacro ())代替,影響使用 block 的模板。

  16. 將 com.googlecode.httl 改成 httl,影響 API 調用,重新 Ctrl+Shift+O 導入一下包名即可,類名沒變。

  17. 將 com.googlecode.httl.support 改成 httl.spi,影響 httl.properties 中擴展點的配置,使用缺省配置值的,建議不要配到用戶配置中。

  18. 將 filters 配置項改成了 value.filters,與 text.filters 對應用,影響 httl.properties 中 filter 擴展點的配置。

  19. 將 functions 配置項成了 import.methods,與 import.packages 以及 import.macros 對應,方便理解。

  20. 加號數字優先,即只要有一方為數字即換數字計算,如:"2" + 3,輸出:5,而不是:23,如果要字符相拼雙方都要為字符:"2" + 3.toString

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!