jetbrick-template Java 模板引擎

概述 OvervIEw

jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性。 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板。 指令和 Velocity 相似,表达式和 Java 保持一致,易学易用。

  • 支持类似于 Velocity 的多种指令
  • 支持模板热加载
  • 支持强类型/弱类型切换
  • 支持静态方法/字段
  • 支持可变参数方法调用
  • 支持方法重载
  • 支持扩展方法
  • 支持扩展函数
  • 支持自定义标签 #tag
  • 支持宏定义 #macro
  • 支持布局 layout
  • 支持安全管理器

1. 简单易用的指令

jetbrick-template 指令集和老牌的模板引擎 Velocity 非常相似,易学易用。

Copy
#define(List users)
<table>
  <tr>
    <td>序号</td>
    <td>姓名</td>
    <td>邮箱</td>
  </tr>
  #for (User user : users)
  <tr>
    <td>${for.index}</td>
    <td>${user.name}</td>
    <td>${user.email}</td>
  </tr>
  #end
</table>

详细指令语法,请参考:语法-指令, 语法-表达式。或者和 Velocity 的比较

2. 易于集成 Web IntegRATion

jetbrick-template 可以和当前流行的 Web mvc framework 进行集成。

具体 Web 集成方法,请参考: Web 框架集成

3. 友好的错误提示

jetbrick-template 具有详细的模板解析和运行时错误提示,出错提示可以精确定位到原始模板所在的行和列。

Copy
jetbrick.template.runtime.InterpretException: cannot resolve property: jetbrick.template.test.Model#coding

template: /jetbrick/template/test/template.jetx: 51,18
-------------------------------------------------------------------------------
  49:         <td>${for.index}</td>
  50:         <td>${item.id}</td>
  51:         <td>${item.coding}</td>
                        ^ -- here
  52:         <td style="text-align: left;">${item.name}</td>
  53:         <td>${item.prICE}</td>
-------------------------------------------------------------------------------

    at jetbrick.template.parser.ast.AstInvokeField.doInvokeGetter(AstInvokeField.java:63)
    at jetbrick.template.parser.ast.AstInvokeField.execute(AstInvokeField.java:51)
    at jetbrick.template.parser.ast.AstValue.execute(AstValue.java:36)
    at jetbrick.template.parser.ast.AstStatementList.execute(AstStatementList.java:182)
    at jetbrick.template.parser.ast.AstDirectiveFor.execute(AstDirectiveFor.java:59)
    at jetbrick.template.parser.ast.AstStatementList.execute(AstStatementList.java:182)
    at jetbrick.template.parser.ast.AstTemplate.execute(AstTemplate.java:37)
    at jetbrick.template.JetTemplateImpl.doInterpret(JetTemplateImpl.java:153)
    at jetbrick.template.JetTemplateImpl.render(JetTemplateImpl.java:138)
  • 出错模板:/jetbrick/template/test/template.jetx
  • 出错位置:line 51, column 18
  • 错误原因:cannot resolve property: jetbrick.template.test.Model#coding

点击这里查看:模板错误提示

jetbrick-template 2.0.4 发布,Java 模板引擎
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 2.0.4 发布拉! Release Notes: [新增] add servletGet() function [更新] update jetbrick-commons to 2.0.4 [优化] speed up for NullSafe expression [优化] auto recreate JetEngine on webapp reloading [

发布于 2014-12-08 04:21:09 | 312 次阅读

jetbrick-template 2.0.3 发布,Java 模板引擎
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 2.0.3 发布拉! Release Notes: [新增] 类似 freemarker 的 ! 的表达式级别的 NullSafe (a.b.c ?! \"I am null\") [变更] change simplify ternary operator semantic (a ?: b ==> a ? a : b) [修复

发布于 2014-11-24 08:20:24 | 181 次阅读

jetbrick-template 2.0.2 发布,Java 模板引擎
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 2.0.2 正式版终于发布拉! 本次更新主要修复了 2.0 的 bugs,建议大家升级。 Release Notes: [增强] Add SecurityManager for create template with source [增强] Allow initialize value for JetWebCo

发布于 2014-11-17 03:29:23 | 162 次阅读

jetbrick-template 2.0 发布,Java 模板引擎
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 2.0 正式版终于发布拉!本次更新变化较大,和 1.x 存在一定的不兼容,具体参考 Release Notes。* 支持强类型/弱类型切换* 新增 #options 选项指令* 支持外部宏定义文件* 新增 #cal

发布于 2014-11-10 02:23:41 | 193 次阅读

jetbrick-template 1.2.11 发布
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 1.2.11 正式版发布。Version 1.2.11  (2014-09-06) ----------------------------- * [增强] #107 可否增加对jfinal的Model的get()方法? * [修复] #108 servletContext&nb

发布于 2014-09-10 01:54:17 | 181 次阅读

jetbrick-template 1.2.8 发布
全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 1.2.8 正式版发布。Version 1.2.8 (2014-06-19)[增强] #104 for.size 对 iterator 的支持[修复] #102 macro递归调用解析异常[修复] #103 Mac环境PathUtilsTest单元测试失败[修复] 捕获 Tomcat Server 中

发布于 2014-06-20 01:49:57 | 162 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务