设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

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

2019-4-23 13:40| 发布者: joejoe0332| 查看: 294| 评论: 0|原作者: oschina|来自: oschina

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

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

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

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

<!--: for(u in users){ -->
<span>${u.name},#{u.content} </span>
<!--:}-->

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

<cms:define export="contents"/>
//其他地方可以用conents
<cms:foreach list="${contents}" var="c">
<span>${c.title}</span>
</cms:foreach>

* 语法树可定制,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

<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl</artifactId>
    <version>3.0.0.M1</version>
</dependency>

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部