博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Beetl 3.0.0.M1 版本发布,Java 模板引擎
阅读量:5905 次
发布时间:2019-06-19

本文共 1188 字,大约阅读时间需要 3 分钟。

  hot3.png

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

本次发布是3.0的第一个版本,3.0 版本相比于2.0,在文本处理和脚本引擎上做了增强

* Beetl支持自定义模板的定界符和站位符,Beetl3 允许再定义一对“站位符和定界符”,比如定义了模板的定界符<%%>,站位符${},你可以定义一对,比如<!--: --> 和 #{} 如下是一段模板。自定义定界符和占位符有有助于和模板“融洽相处”

${u.name},#{u.content}

* HTML 标签增强,可获取父子关系,标签定义的变量可导出到整个模板使用

//其他地方可以用conents
${c.title}

* 语法树可定制,2.X版本如果要修改语法树,写的代码较多,3.0能轻易的修改语法树,实现自己特有逻辑,比如在线内容管理系统要求循及时模板写错了,循环运行超过不能超过1万次,

@ while(true){ \\ 恶意写法@}

3.0 能轻易修改while节点实现,通过GrammarCreator,替换自己的实现,从而限制while循环限制次数,Beetl的所有语法节点都可以被替换,以实现扩展需求,譬如 #{} 的实现需要xxs

@Override	public PlaceholderST createTextOutputSt2(Expression exp, FormatExpression format) {		check("TextOutputSt2");		return new YourXXSPlaceholderST(exp, format, null);	}

YourXXSPlaceholderST 内部可以参考PlaceholderST.java实现,但增加了XSS校验

* 提升了脚本API,Beetl 本身就是脚本引擎,Beetl3 增加了多个脚本&规则运行的API,可以方便的提供脚本功能

Map ret = groupTemplate.runScript("return 2*利率;",paras);Double d = ret.get("return");

*  片段渲染增强,Beetl允许只渲染模板的一部分,Beetl3增强了片段渲染功能。

*  语法糖,增加了诸如 x+=y ,user.age+=1这种语法.

* Beetl3内部做了较多改动,但性能还是一贯的优秀,没有已知的模板引擎在性能上超过Beetl3

 

Maven

com.ibeetl
beetl
3.0.0.M1

 

转载地址:http://odjpx.baihongyu.com/

你可能感兴趣的文章
Exchange2003-2010迁移系列之十,Exchange证书攻略
查看>>
extmail集群的邮件负载均衡方案 [lvs dns postfix]
查看>>
更改UIView的背景
查看>>
APUE第15章学习扎记之程序的存储区布局试验
查看>>
ubuntu升级16.04 inter idea 中文输入法无效
查看>>
三目运算判断jsp脚本里面的值
查看>>
sshtunnel在本地访问云服务器mysql
查看>>
小蚂蚁学习APP接口开发(1)—— json方式封装通信接口
查看>>
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
访问共享经常中断
查看>>
人生的交易
查看>>
MySql
查看>>
sql server 下载安装标记
查看>>
js运算符(运算符的结合性)
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>