概述 Overview

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

支持类似于 Velocity 的多种指令

支持静态编译

支持编译缓存

支持热加载

支持类型推导

支持泛型

支持可变参数方法调用

支持方法重载

支持类似于 Groovy 的方法扩展

支持函数扩展

支持自定义标签 #tag

支持宏定义 #macro

支持布局 Layout

文档 Documents

简单易用的指令

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

#define(List userlist)

序号 姓名 邮箱

#for (UserInfo user : userlist)

${for.index}${user.name}${user.email}

#end

基本开发 API

创建自定义配置的 JetEngine 对象。推荐使用单例模式创建。

根据模板路径,获取一个模板对象 JetTemplate。

创建一个 Map 对象,并加入你的 data objects。

准备一个待输出的对象,OutputStream 或者 Writer。

根据你的 data objects 来渲染模板,并获得输出结果。

具体的 Java 代码,看上去是这样的:

// 创建一个默认的 JetEngine

JetEngine engine = JetEngine.create();

// 获取一个模板对象

JetTemplate template = engine.getTemplate("/sample.jetx");

// 创建 context 对象

Map context = new HashMap();

context.put("user", user);

context.put("books", books);

// 渲染模板

StringWriter writer = new StringWriter();

template.render(context, writer);

// 打印结果

System.out.println(writer.toString());

卓越性能 Performance

jetbrick-template 将模板编译成 Java ByteCode 运行,并采用强类型推导,无需反射和减少类型转换。渲染速度等价于 Java 硬编码。比 Velocity 等模板快一个数量级。 比 JSP 也快,因为 JSP 只有 Scriptlet 是编译的,Tag 和 EL 都是解释执行的。 而 jetbrick-template 是全编译的。

在 Stream 模式中(Webapp 采用 OutputStream 将文本输出到浏览器),由于 Java 硬编码输出字符串需要进行一次编码的转换。 而 jetbrick-template 却在第一次运行期间就缓存了编码转换结果,使得 jetbrick-template 的性能甚至优于 Java 硬编码。

测试平台 platform: Window 7 x64, Intel i5, 16GB RAM, JDK 1.6.0_41 x64

作者 Author

开源许可 License

Copyright 2010-2014 Guoqiang Chen. All rights reserved.

Email: subchen@gmail.com

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

java 模板引擎 比较_jetbrick-template相关推荐

  1. Java 模板引擎总结

    Java模板引擎 FreeMarker 概念 介绍 特性 优势 不足 一个小Demo 概念 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.它是为Java程 ...

  2. Beetl-新一代Java模板引擎

    简介 Beetl是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,超过当前流行的模板引擎.而且还易学易用.官网:http: ...

  3. Java 模板引擎 ~ FreeMarker。

    Java 模板引擎 ~ FreeMarker. 文章目录 Java 模板引擎 ~ FreeMarker. 数据模型 + 模板 = 输出(HTML). https://freemarker.apache ...

  4. java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板

    点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...

  5. java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...

  6. java 模板引擎_Spring Boot 如何快熟整合Thymeleaf模板引擎

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...

  7. Thymeleaf学习总结(1)——新一代Java模板引擎Thymeleaf

    Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎.类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用 ...

  8. Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门

    1. 什么是Beetl Beetl目前版本是2.7.0,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验.是新一代的模板引擎. ...

  9. Java模板引擎 FreeMarker介绍1

    Java模板引擎 FreeMarker介绍 摘要: FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,FreeMarker被设计用来生成HTML Web页面( ...

最新文章

  1. linux挂载设备类型lvm,linux——管理系统设备之LVM的管理
  2. win10怎么用Linux命令,教你Windows10系统使用Linux命令的技巧
  3. LL-verilog语法:case用法
  4. 鸿蒙科技与文化,数字阅读 | “华为鸿蒙”:当现代科技遇到古典文化
  5. 使用Sniffer Pro监控网络流量
  6. 香港科技大学TensorFlow速成(1)
  7. Understanding Growth
  8. (5)二进制文件方式部署Kubernetes高可用集群----------创建kubeconfig文件Token.csv随机数文件
  9. python画离散点_python 画散点图
  10. \opencv\build\x86下的vc6、vc7、vc8、vc9、vc10、vc11、vc12、vc14、vc15是什么意思?
  11. 快手短视频批量下载工具详细使用说明
  12. DSP 程序远程升级 / Bootloader设计指南(一)—— 初识Bootloader/DSP引导流程
  13. 【网络是怎么连接的】| 【03】探索集线器、交换机和路由器
  14. 大规模网络拓扑测量与分析研究1-论文
  15. 数码显示实验报告C语言,数码管动态显示实验报告
  16. mysql取分组最新的一条_mysql group by之后取每个分组最新的一条
  17. Simulink —— Manual Switch的使用
  18. Excel 处理重复数据的几种方法
  19. Spring 表达式语言(SpEL)
  20. 码农犯错导致多人赢取头奖,麦当劳叔叔一笑谅解

热门文章

  1. GoJS v2.2.2 去除水印方法
  2. 天下3新手攻略——技能解读
  3. AutoJs学习-实现度娘传情
  4. Win10内存已提交大小过大的问题调研
  5. 纯CSS实现网站常用的五角星评分和分数展示交互效果
  6. 服务器如何显示玩家玩了多久,最有成就感的游戏!玩家只要努力,就能控制整个服务器!为所欲为...
  7. 云虚拟主机开源 DedeCMS 安装指南
  8. python基础——魔术方法
  9. js 比较时分大小_js实现时间大小比较
  10. 批量解决word中行距设置为固定值图片显示不全的问题