jetbrick-template 是一個新一代 Java 模板引擎,具有高性能和高擴展性。 適合于動態(tài) HTML 頁面輸出或者代碼生成橙凳,可替代 JSP 頁面或者 Velocity 等模板。 指令和 Velocity 相似,表達式和 Java 保持一致载迄,易學易用讯柔。
- 支持類似與 Velocity 的多種指令
- 支持靜態(tài)編譯
- 支持編譯緩存
- 支持熱加載
- 支持類型推導
- 支持泛型
- 支持可變參數(shù)方法調用
- 支持方法重載
- 支持類似于 Groovy 的方法擴展
- 支持函數(shù)擴展
- 支持自定義標簽 #tag
- 支持宏定義 #macro
- 支持布局 Layout
簡單易用的指令
jetbrick-template 指令集和老牌的模板引擎 Velocity 非常相似,易學易用护昧。
#define(List<UserInfo> userlist)
<table> <tr>
<td>序號</td>
<td>姓名</td>
<td>郵箱</td>
</tr>
#for (UserInfo user : userlist)
<tr>
<td>${for.index}</td>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
#end
</table>
卓越性能 Performance
jetbrick-template 將模板編譯成 Java ByteCode 運行魂迄,并采用強類型推導,無需反射和減少類型轉換惋耙。渲染速度等價于 Java 硬編碼捣炬。比 Velocity 等模板快一個數(shù)量級。 比 JSP 也快绽榛,因為 JSP 只有 Scriptlet 是編譯的湿酸,Tag 和 EL 都是解釋執(zhí)行的。 而 jetbrick-template 是全編譯的灭美。
在 Stream 模式中(Webapp 采用 OutputStream 將文本輸出到瀏覽器)推溃,由于 Java 硬編碼輸出字符串需要進行一次編碼的轉換。 而 jetbrick-template 卻在第一次運行期間就緩存了編碼轉換結果届腐,使得 jetbrick-template 的性能甚至優(yōu)于 Java 硬編碼铁坎。