Beetl 3.0.0.M1 版本發布,Java 模板引擎

2020-12-25 開源中國

Beetl是一款全功能,性能優秀的國產模板引擎,可以廣泛用於動態頁面生成,靜態頁面生成,代碼生成,文本轉換,腳本和規則引擎等,從2011年來,一直維護,並得到國內用戶的肯定。

本次發布是3.0的第一個版本,3.0 版本相比於2.0,在文本處理和腳本引擎上做了增強

* Beetl支持自定義模板的定界符和站位符,Beetl3 允許再定義一對「站位符和定界符」,比如定義了模板的定界符<%%>,站位符${},你可以定義一對,比如<!--: --> 和 #{} 如下是一段模板。自定義定界符和佔位符有有助於和模板「融洽相處」

<!--: for(u in users){ --><span>${u.name},#{u.content} </span><!--:}-->

* HTML 標籤增強,可獲取父子關係,標籤定義的變量可導出到整個模板使用

<cms:define export="contents"/>//其他地方可以用conents<cms:foreach list="${contents}" var="c"><span>${c.title}</span></cms:foreach>

* 語法樹可定製,2.X版本如果要修改語法樹,寫的代碼較多,3.0能輕易的修改語法樹,實現自己特有邏輯,比如在線內容管理系統要求循及時模板寫錯了,循環運行超過不能超過1萬次,

@ while(true){ \\ 惡意寫法@}

3.0 能輕易修改while節點實現,通過GrammarCreator,替換自己的實現,從而限制while循環限制次數,Beetl的所有語法節點都可以被替換,以實現擴展需求,譬如 #{} 的實現需要xxs

@Override public PlaceholderST createTextOutputSt2(Expression exp, FormatExpression format) { check("TextOutputSt2"); return new YourXXSPlaceholderST(exp, format, null); }

YourXXSPlaceholderST 內部可以參考PlaceholderST.java實現,但增加了XSS校驗

* 提升了腳本API,Beetl 本身就是腳本引擎,Beetl3 增加了多個腳本&規則運行的API,可以方便的提供腳本功能

Map ret = groupTemplate.runScript("return 2*利率;",paras);Double d = ret.get("return");

*  片段渲染增強,Beetl允許只渲染模板的一部分,Beetl3增強了片段渲染功能。

*  語法糖,增加了諸如 x+=y ,user.age+=1這種語法.

* Beetl3內部做了較多改動,但性能還是一貫的優秀,沒有已知的模板引擎在性能上超過Beetl3

 

Maven

<dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.0.0.M1</version></dependency>

 

相關焦點

  • Beetl 3.0.11 版本發布,Java 模板引擎
    = org.beetl.ext.tag.html.ForeachHtmlTag如下例子   <#html:include file="" arg1="" arg2="" />include包含file屬性指名一個模板路徑,後面若干屬性可選,會在子模板裡引用<#
  • BeetlSQL 3.0.0-M2 新增性能測試
    這次發布,主要是對性能進行第一輪測試,以驗證從2升級到3後,性能沒有顯著下降。
  • BeetlSQL 3.0.0-M1 第一個版本發布 - OSCHINA - 中文開源技術交流...
    經過8個月的重構,BeetlSQL3裡程碑1已經完成BeetlSQL是一款資料庫訪問工具庫,廣泛應用到企業應用,網際網路項目。相比於BeetlSQL2,新版支持更多數據來源,包括支持JDBC的傳統資料庫,大數據NOSQL,以及大數據SQL查詢引擎,在易用性何擴展性也做了大幅度修改。
  • Thymeleaf 1.0.0-beta3 發布,HTML5模板引擎
    這是個XML/XHTML/HTML5模板引擎,提供一組模板文件到文本的轉換。>>       <td th:text="${prod.name}">Oranges</td>       <td th:text="${#numbers.formatDecimal(prod.price,1,2
  • smart-doc 1.9.0 發布,新增 Open Api 3.0+ 支持
    smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!功能特性 零註解、零學習成本、只需要寫標準java注釋。
  • Wit 2.0.0-beta 發布,Java 模板引擎(原 Webit Script)
    ,全局變量,Lambda 表達式,核心模塊輕巧(2.0.0-beta 版本核心 jar 為 327.7 KB),無第三方依賴,採用BSD開源協議。發布一下 2.0.0-beta !下個版本應該會是 2.0.1-beta 或 2.1.0-beta!沒有正式版!驚不驚喜!意不意外!
  • Enjoy 3.6 發布,Java 開發者專用超輕量級模板引擎
    與以往任何一款 java 模板引擎都有顯著的不同,極簡設計、獨創算法、極爽開發體驗,從根本上重新定義了模板引擎,這裡是首版發布時的盛況,傳送門:JFinal 3.0 發布,重新定義模板引擎    Enjoy 模板引擎專為 java 開發者打造,所以堅持兩個核心設計理念:一是在模板中可以直接與 java 代碼通暢地交互,二是儘可能沿用 java 語法規則,將學習成本降到極致
  • BeetlSQL 2.11.1 發布,Java Dao 工具
    果然小數位是0的版本發布都會有問題,2.11.1 修復了上一個版本新增自定義註解功能的bug,建議更新到新的版本<dependency> <groupId
  • Thymeleaf 3.0.1 發布,HTML 5 模板引擎
    Thymeleaf 3.0.1 發布了,Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發
  • Fel 0.7 版本發布,表達式引擎
    Fel是開放的,引擎執行中的多個模塊都可以擴展或替換。Fel的執行主要是通過函數實現,運算符(+、-等都是Fel函數),所有這些函數都是可以替換的,擴展函數也非常簡單。 Fel有雙引擎,同時支持解釋執行和編譯執行。可以根據性能要求選擇執行方式。
  • FreeMarker 2.3.23 RC1 發布,Java 模板引擎
    FreeMarker 2.3.23 RC1 發布,最終版本計劃 7 月 5 日發布!
  • Act-starter 1.8.25.0 發布 - 非苗條型 Java web 服務框架
    本次發布內容:核心框架更新到 1.8.25#1152 創建控制器實例發生空指針異常
  • Thymeleaf 3.0.3 發布,HTML5模板引擎
    Thymeleaf 3.0.3 發布了。Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。
  • BeetlSQL 3.1.4 發布,Java 資料庫訪問工具
    本次修復了@Version和@LogicDelete 實現Bug 修復從2升級到3後@Version和@
  • Fel-0.5 版本發布
    編譯執行就是將表達式編譯成字節碼(生成java代碼和編譯模塊都是可以擴展和替換的)Fel基於Java1.5開發,適用於Java1.5及以上版本。特點:易用性:API使用簡單,語法簡潔,和java語法很相似。輕量級:整個包只有300多KB。高 效:目前沒有發現有開源的表達式引擎比Fel快。
  • Juicer 0.4.0-dev 發布,JS模板引擎
    Juicer 0.4.0-dev 發布,性能同0.3持平略有提升,Mac Chrome v18中測試表明Juicer最快,jQueryTmpl
  • Thymeleaf 3.0.2 發布,HTML 5 模板引擎
    Thymeleaf 3.0.2發布了,Thymeleaf 是一個XML/XHTML/HTML5模板引擎
  • Stitch 0.1.1 發布,PHP 模板引擎
    Stitch 0.1.1 發布了,該版本增加對 PHP 5.2 的支持。Stitch 讓你將 PHP 模板和頁面分開不同的文件保存,然後動態的縫合在一起生成頁面。
  • JPress v3.0 alpha.1 發布
    Press v3.0 alpha.1 發布了, v3.0 比 v2.0 主要是增加了支付的能力,感謝大家的關注,讓 JPress
  • 代碼自動生成器 AutoCreate v2.0 發布
    autocreate 是 資料庫連結採用Jfinal ActiveRecordPlugin,模板配置採用beetl,實現根據模板自動生成項目代碼