新一代 Java 模板引擎:jetbrick-template
jetbrick-template 是一個新一代 Java 模板引擎,具有高性能和高擴展性。 適合于動態 HTML 頁面輸出或者代碼生成,可替代 JSP 頁面或者 Velocity 等模板。 指令和 Velocity 相似,表達式和 Java 保持一致,易學易用。
- 支持類似與 Velocity 的多種指令
- 支持靜態編譯
- 支持編譯緩存
- 支持熱加載
- 支持類型推導
- 支持泛型
- 支持可變參數方法調用
- 支持方法重載
- 支持類似于 Groovy 的方法擴展
- 支持函數擴展 </ul>
- HttpServlet
- Filter
- Jetbrick WebMVC
- Struts 2.x
- Spring MVC
- JFinal </ul>
2 簡單易用的指令
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></pre>
</div>
</div>
詳細指令語法,請參考:語法指南。或者和 Velocity 的比較。
3 卓越性能 Perfermance
jetbrick-template 將模板編譯成 Java ByteCode 運行,并采用強類型推導,無需反射和減少類型轉換。渲染速度等價于 Java 硬編碼。比 Velocity 等模板快一個數量級。 比 JSP 也快,因為 JSP 只有 Scriptlet 是編譯的,Tag 和 EL 都是解釋執行的。 而 jetbrick-template 是全編譯的。

在 Stream 模式中(Webapp 采用 OutputStream 將文本輸出到瀏覽器),由于 Java 硬編碼輸出字符串需要進行一次編碼的轉換。 而 jetbrick-template 卻在第一次運行期間就緩存了編碼轉換結果,使得 jetbrick-template 的性能甚至優于 Java 硬編碼。
具體測試用例,請參考:jetbrick-template-benchmark (platform: Window 7 x64, Intel i5, 16GB RAM, JDK 1.6.0_41 x64)
4 易于集成 Integrate
可以和市面上常見的 Web MVC framework 進行集成。
具體集成方法,請參考: 框架集成
</strong>