Beetl 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Beetl 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: BSD
开发语言: Java 查看源码 »
操作系统: 跨平台
收录时间: 2012-03-05
提 交 者: 闲大赋

Beetl目前版本是3.2,大小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/

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Beetl 的相关博客

beetl使用

Beetl使用说明

Beetl 免费视频

来自 https://my.oschina.net/gking?q=Beetl ,Beetl终于有人录制视频了 项目git地址:https://gitee.com/gavink/beetl-blog...

beetl 和 shrio 结合

shrio 提供有jsp 标签,供在jsp 里使用,如果想在beetl中使用,有俩种方法, 一是beetl支持集成jsp页面,所以你可以在在jsp里...

beetl 使用量稳步增长

记得去年,freemaker 下载量还是beetl的3倍,现在,只有2倍了。值得祝贺。 这周beetl使用量是102 个下载,freemaker 国内下载...

Beetl SpringBoot集成

在Spring Boot中配置Beetl,总是出现问题找不到路径的问题, 在Spring Boot中以下面这种方式配置路径: WebAppResourceLoader...

好专业的beetl代码

无意中看到 @渔泯小镇 写的beetl翻页代码,这是一个典型的显示逻辑较为复杂的场景,很考验模板语言 写的非常专业, http://w...

beetl的使用感受

beetl 的用法,跟layui的laytpl的模版语言差不多。写的很舒服。没有thymeleaf那么麻烦。例如 <% for(loadDischargItem in...

如何帮助beetl发展

Beetl在国内Java Web项目里已经经常被使用,或者是重要的选项,为了帮助Beetl更好的发展,建议如下: 熟练Beetl的开发者: 1 ...

模板引擎-beetl

前段时间项目需要用到模板技术,本想使用FreeMarker发现有些过时的样子,就搜到了个Beetl,简单一用...

Beetl-Spring扩展

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

评论 (62)

加载中
实在是太烂了........
08/21 22:25
回复
举报
你写一个比他好的,然后再来喷
08/21 22:50
回复
举报
呵呵呵
08/21 23:24
回复
举报

引用来自“Jomchen”的评论

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

引用来自“redblueme”的评论

何出此言呢
原来是公司对地址过滤没弄好所以访问不了,我还以为beetl官网被黑了呢,,,惊了一跳。
2018/12/21 17:33
回复
举报

引用来自“Jomchen”的评论

官网打不开,这是要玩完的节奏么。。。
可以打开啊
2018/12/16 19:47
回复
举报

引用来自“Jomchen”的评论

官网打不开,这是要玩完的节奏么。。。
何出此言呢
2018/12/11 14:42
回复
举报
官网打不开,这是要玩完的节奏么。。。
2018/12/11 14:34
回复
举报
能否开发些像springmvc的标签一样的标签库
2018/09/08 12:09
回复
举报
这语法我也是醉了 。。。
2018/04/12 23:14
回复
举报
打分: 推荐
${strutil.replace ("Hello\.asd",".","loooo")} ,第一个参数也是正则敏感的,这一段运行报错
2018/01/16 17:18
回复
举报
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
2017/11/27 11:23
回复
举报
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
2017/11/27 10:46
回复
举报
更多评论
62 评论
1K 收藏
分享
返回顶部
顶部