新一代 Java 模板引擎典范 Beetl

BSD
Java 查看源码»
跨平台
2012-03-05
闲大赋

Beetl目前版本是2.9,大小720K,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,开发和维护模板有很好的体验。是新一代的模板引擎。总得来说,它的特性如下:

 

  • 功能完备:同主流的java模板引擎相比,Beetl具有绝大多数功能。适用于各种应用场景,从对响应速度有很高要求的大网站到功能繁多的CMS管理系统都适合。Beetl本身还具有很多独特功能来完成模板编写和维护,这是其他模板引擎所不具有的。

  • 非常简单:类似Javascript语法和习俗,只要半小时就能通过半学半猜完全掌握用法。拒绝其他模板引擎那种非人性化的语法和习俗。

  • 超高的性能:Beetl 远超过主流java模板引擎性能,如5-6倍于freemarker,2倍于传统jsp技术。而且消耗较低的CPU

  • 易于整合:Beetl能很容易的与各种web框架整合,如Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet等。

  • 支持模板单独开发和测试,即在MVC架构中,即使没有M和C部分,也能开发和测试模板。

  • 扩展和个性化:Beetl支持自定义方法,格式化函数,虚拟属性,标签,和HTML标签. 同时Beetl也支持自定义占位符和控制语句起始符号也支持使用者完全可以打造适合自己的工具包.

 

关于性能

通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态文本,通过重复使用字节数组来防止java频繁的创建和销毁数组,还使用模板缓存,运行时优化等方法。

性能测试来自TEB

关于插件:

插件针对模板应用特性做了优化,除了常规语言特性支持外,还支持静态文本折叠,模板文件快速打开(如第27行单击ccc.btl快速打开),模板文件原生插件和beetl插件切换等功能.

插件介绍和下载

独特功能

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系统,超高访问量的门户系统

Beetl在线体验和代码分享:http://ibeetl.com/beetlonline/

的码云指数为
超过 的项目
加载中

评论(56)

J
Jomchen

引用来自“Jomchen”的评论

官网打不开,这是要玩完的节奏么。。。

引用来自“redblueme”的评论

何出此言呢
原来是公司对地址过滤没弄好所以访问不了,我还以为beetl官网被黑了呢,,,惊了一跳。
二进制艺术
二进制艺术

引用来自“Jomchen”的评论

官网打不开,这是要玩完的节奏么。。。
可以打开啊
redblueme
redblueme

引用来自“Jomchen”的评论

官网打不开,这是要玩完的节奏么。。。
何出此言呢
J
Jomchen
官网打不开,这是要玩完的节奏么。。。
啊_伟
啊_伟
能否开发些像springmvc的标签一样的标签库
看-野生程序猿
看-野生程序猿
这语法我也是醉了 。。。
l
lblin
${strutil.replace ("Hello\.asd",".","loooo")} ,第一个参数也是正则敏感的,这一段运行报错
马丁的早晨
马丁的早晨
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
马丁的早晨
马丁的早晨
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
俺木加加
俺木加加
#JFinal##Beetl# 都是我心目中的好作品,没必要为舆论动干戈。

Beetl 3.0.10 版本发布,Java 模板引擎

修复如下升级到 3 后微小不兼容问题 antlr4.7.2 带来的字符串解析不兼容 html tag标签报错定位信息不准,定位到标签尾 html 标签解析异常后没有包装为 BeetlException Beetl 配置参数检测 ...

07/16 09:23

Beetl 3.0.3.REALEASE 版本发布,Java 模板引擎

逃不过大版本发布有大问题的规律,陆续收到一些尝试Beetl3的使用者反馈,本次发布修复了不兼容问题 通过ajax标记访问模板块的功能不兼容修复 Escape "\" 不起作用修复 双占位符某些情况下解析...

06/17 09:54

Beetl 3.0.0.REALEASE 版本发布,Java 模板引擎

Beetl(发音同Beetle)是一款高性能,全功能,简单易用的Java模板(文本处理)引擎,广泛应用在动态页面,静态内容生成,代码生成,规则引擎等领域,自从2011年以来,一直在维护和改进,是国产...

06/09 22:11

Beetl 3.0.0.M2 版本发布,Java 模板引擎

Beetl是一款全功能,高性的国产模板引擎,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本和规则引擎等,从2011年来,一直维护,并得到国内用户的肯定 本次发布增加了俩个...

05/15 13:25

Beetl 2.9.10 版本发布,Java 模板引擎

本次发版希望是最后一个2.x版本,增加了一个html标签新特性 html标签实现(Tag子类)可以通过$cols 变量访问该标签所定义的所有属性名 public class SimpleHtmlTag extends Tag{ ...

05/07 12:17

Beetl 3.0.0.M1 版本发布,Java 模板引擎

Beetl是一款全功能,性能优秀的国产模板引擎,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本和规则引擎等,从2011年来,一直维护,并得到国内用户的肯定。 本次发布是3...

04/23 09:58

Beetl 2.9.8 版本发布,Java 模板引擎

本次修复一个2.9.2 以来的严重Bug,标签体的输出长度超过4096会导致重复输出,强烈建议2.9以上版本升级到最新版本 #379 自从2.9.2 版本的bug,标签体内容在长度过长情况下重复输出,NoLockSt...

01/16 00:22

Beetl 2.9.2 版本发布,Java 模板引擎

本次发布修复了2.9.0 带来的Bug,果然发布版本为“0”的都会有问题,Beetl也逃不出这个发布规律 :) #371 修复了定界结束符为回车换行报错的Bug Maven <dependency>     <groupId>com.ib...

2018/09/12 08:39

Beetl 2.9.0 发布,修改 HTML 标签的渲染机制

本次发布主要修改了HTML 标签的渲染机制,HTMLTagSupportWrapper2 采用延迟渲染 # 368 tagBody 改为按照需要渲染 #367 俩处错误提示不明显的地方 在2.9.0版本,HTML 标签内部渲染是使用tagBo...

2018/09/09 20:45

Java 模板引擎 Beetl 2.8.5 发布,增加根对象支持

本次发布增加了一个小功能,模板可以输出静态文件 # 361 增加一个printFile,直接输出静态内容 Maven <dependency>     <groupId>com.ibeetl</groupId>     <artifactId>beetl</ar...

2018/06/27 14:31

没有更多内容

加载失败,请刷新页面

8
回答
Weblogic下Jfinal 集成Beetl:占位符不解析

@闲.大赋 你好,想跟你请教个问题: 如上图,Weblogic下面,JFinal集成Beetl,占位符没有解析。没有发现Error Log;Tomcat下...

2015/05/29 23:51
3
回答
springboot2使用beetl模板,使用maven标准目录结构而不用springboot的目录结构出现的一个问题

@闲大赋 看看能不能艾特下大大 这个是maven风格的目录结构 打成war包的目录会是这样 打包出来的 static目录在项目一级目录下,页面文件夹在WE...

02/22 17:06
7
回答
什么项目什么时候比较适合用VUE和react。感觉现在都是为了用而用?我怎么感觉企业内部应用,后台管理的,没必要用VUE啊。

【如题】 什么项目什么时候比较适合用VUE和react。现在怎么全都是为了用而用,只要是前端就用VUE了吗????我怎么感觉企业内部应用,后台管理的,没必...

06/28 10:08
3
回答
关于beetl的循环语句

@闲.大赋 你好,想跟你请教个问题: 关于循环遍历与页面输出,和freemark的写法做了对比一起贴出来如下(本人学习能力有限,如果代码有误烦请指教),发...

2015/02/12 01:15
11
回答
spring boot 集成beetl模板路径找不到的问题!

@闲大赋 你好,想跟你请教个问题: 在eclipse中,可以正常找到路径。将工程生成jar包后运行就找不到模板路径了。主要代码如下: public sta...

2016/04/05 20:10
2
回答
beetl HTML_TAG_FLAG默认为#用 怎样设置成其他符号,

beetl HTML_TAG_FLAG默认为#用 怎样设置成其他符号,

2015/09/20 14:30
1
回答
beetlsql

@闲大赋 你好,想跟你请教个问题:beetl有没有直接处理存储过程结果集的方法

2018/12/19 10:29
3
回答
beetl 遍历map 不能取出key value

@闲大赋 你好,想跟你请教个问题: @for(extMap in item.extOne){ @println("key:"+extMap); @} ...

2018/12/10 18:15
5
回答
求beetl的视频教程
闲大赋 的回答 2015/11/18 17:14
最佳答案
据我所知,beetl没有人录制视频,如果想体验,用 http://ibeetl.com:8080/beetlonline/ 就可以了。
4
回答
spring 3.1 集成 beetl 2.2 报错!

spring 3.1 集成 beetl 2.2 启动报错:NoUniqueBeanDefinitionException java.lang.NoClas...

2016/03/28 15:45

没有更多内容

加载失败,请刷新页面

如何帮助beetl发展

Beetl在国内Java Web项目里已经经常被使用,或者是重要的选项,为了帮助Beetl更好的发展,建议如下: 熟练Beetl的开发者: 1 已经使用过Beetl的可以发布一些个人博客介绍Beetl,或者Beetl使用...

2015/04/01 14:04
285
2
01.Beetl介绍以及集成SpringBoot2.0 ---《Beetl视频课程》

本期视频介绍了beetl; 内容简介:介绍beetl;springboot 集成 beetl; 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK 目的:引导阅读官方文档...

2018/11/17 00:48
764
1
Beetl-Spring扩展

Beetl内置的Spring集成只能满足基本需求,看看@逝水fox如何以Spring的方式集成beetl

2014/07/04 23:49
3.9K
0
05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》

本期视频实现了博客的详情页面; 内容简介:使用了标签函数layout完成详情功能 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK 标签函数 layout...

2018/12/11 11:51
118
0
Beetl开源过程中那些事

介绍Beetl开源中的一些事情,可以让有志从事开源开发的人的借鉴成功和失败的经验

2014/08/26 10:18
5.7K
40
beetl模板引擎的好玩的地方

陈述了beetl作为模板引擎,不但在性能功能上卓越,而且特别好玩。

2014/02/14 12:32
761
3
模板引擎Beet的6大创新点

模板引擎是个古老技术,然而,并不代表古老的技术里产生不了创新,随着Web技术变迁,以及开发人员审美的变化,技术创新还是能在古老的模板技术中实现,本文介绍了Beetl作为一个现代模板引擎的...

2015/08/02 21:28
1K
5
第五章:视图技术之-Beetl模板引擎

1、特性介绍 功能完备:作为主流模板引擎,Beetl具有相当多的功能和其他模板引擎不具备的功能。适用于各种应用场景,从对响应速度有很高要求的大网站到功能繁多的CMS管理系统都适合。Beetl本...

2018/05/19 21:13
258
0
剖析 “‘最好的模板引擎’Beetl剖析及与Tiny模板引擎对比”

http://blog.csdn.net/cndes/art ... 88771 这有一篇文章,说是剖析beetl模板引擎,并与同为国内的tiny模板引擎做对比(以下简称“剖析beetl”),其剖析过程公正,但结论却不正确(文中暗示的...

2016/07/14 10:00
741
16

没有更多内容

加载失败,请刷新页面

返回顶部
顶部