Beetl相對於其他java模板引擎,具有功能齊全,語法直觀,性能超高,開發和維護模板有很好的體驗。是新一代的模板引擎。
總得來說,它的特性如下
1.功能完備:同主流的java模板引擎相比,Beetl具有絕大多數功能。適用於各種應用場景,從對響應速度有很高要求的大網站到功能繁多的CMS管理系統都適合。 Beetl本身還具有許多獨特功能來完成模板編寫和維護,這是其他模板引擎所不具有的。
2.非常簡單:類似Javascript文法和習俗,只要半小時就能透過半學半猜完全掌握用法。拒絕其他模板引擎那種非人性化的語法和習俗。
3.超高的效能:Beetl 遠超過主流java模板引擎效能,如5-6倍於freemarker,2倍於傳統jsp技術。而且消耗較低的CPU
4.易於整合:Beetl能很容易的與各種web框架整合,如Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet等。
5.支援模板單獨開發和測試,即在MVC架構中,即使沒有M和C部分,也能開發和測試模板。
6、擴充和個人化:Beetl支援自訂方法,格式化函數,虛擬屬性,標籤,和HTML標籤。同時Beetl也支援自訂佔位符和控制語句起始符號也支援使用者完全可以打造適合自己的工具包。
透過與主流模板引擎Freemarker,Velocity以及JSP對比,Beetl均遠高於前面三個,這是因為宏觀上,通過了優化的渲染引擎,IO的二進制輸出,字節碼屬性訪問增強,微觀上,通過一維數組保存上下文,合併靜態文本,透過重複使用位元組數組來防止java頻繁的創建和銷毀數組,還使用模板緩存,運行時優化等方法。
Beetl有些功能是發展了10多年的模板引擎所不具備的,這些功能非常利於模板的開發和維護,如下
1.自訂佔位符和控制語句起始符號,這有利於減小模板語法對模板的傾入性,比如在html模板中,如果定義控制語句符號是,那麼,大部分模板文件都能同過瀏覽器打開。有的使用者僅僅採用了單一符號@ 以及回車換號作為控制語句起始符號,這又能提高開發效率。
2、可單獨測試的模板。無需真正的控制層和模型層,Beetl的模板就可以單獨開發和測試。
3.同時支援較為鬆散的MVC和嚴格的MVC,如果在模板語言裡嵌入計算表達式,複雜條件表達式,以及函數調用有乾涉業務邏輯嫌疑,你可以禁止使用這些語法。
4、強大的安全輸出,透過安全輸出符號! ,能在模板變量,變數屬性引用,for循環,佔位符輸出,try-catch中等各地方提供安全輸出,保證渲染正常。
5.模板變數:運行將模板的某一部分輸出像js那樣賦值個一個變量,稍後再處理。利用模板變數能完成非常複雜的頁面佈局(簡單的佈局可使用layout標籤函數)。
6.類型推測,能在運行的時候推測模板變數類型,從而優化性能,也可以透過註解的方法顯示的說明模板變數屬性(這是非必須的,但有助於IDE自動提示功能)。
7.可插拔的設計,錯誤訊息提示,模板引擎快取機制,模板資源管理,本地調用的安全管理器,嚴格MVC限制,模板引擎本身都有預設的實現,但又完全可以自訂以適合特定需求。
8.增強的語法,如#ajax局部渲染,for-elsefor, select-case,安全輸出符號! 等,這些語法特別適合模板開發。
9.效能超高,有最快的模板解釋引擎,同時,又有較低的CPU消耗。適合各類模板引用,如CMS系統,超高訪問量的門戶系統。