当前位置:首页 > 旅游指南

Beetl JFina 3.0 “重新定义的模板引擎”与 Beetl 的功能对比

本文比较了JFina3.0和Beetl的新模板引擎功能

Jfinal3.0自带模板引擎功能。看了介绍和下载演示,发现尺寸增加了不少。似乎对于一个模板引擎来说,JFinal的大小已经增加到了800K,和Jfinal早先宣称的200k大小有很大的区别。为一个模板引擎投入这么大的尺寸值得吗?作为Beetl和BeetlSql的作者,这是必然的。模板引擎其实是一种语言,一种基础技术,可以作为视图渲染,规则解释,Sql模板片段等很多地方使用。以betel为例,在百度金融网站页面渲染、某系统的58个邮件模板、JD.COM某系统的功能规则解释中得到了应用,这些也是BeetlSql的基础。如果Jfina想像BeetlSql一样把Sql放在文件管理中,就必须使用模板技术。回头看看Mybatis,因为使用了xml解析和OGNL表达式,没有使用模板引擎,导致了XML管理中的各种问题。我在文章中已经解释过了

离家近一点,对于JFinal来说,我不认同他文章里解释的观点,感觉有很多地方不正确

Antlr为负

Antlr是一个语法解析工具,已经在很多开源产品中使用过,比如hiberante、Google系列开源、betel实现。《安特尔》的作者是美国大学教授特伦斯·帕尔(Terence Parr)。实现Antlr用了30年。可能Antlr新手觉得它体积大了一点,但毫无疑问它功能可靠稳定,性能很好。同时,Antlr还可以生成各种目标语言,比如Java、Python、GO、JS等。毫不夸张地说,如果我愿意,betel & amp;beetSqL不能只依赖Java原生

JFinal3.0声称Antlr不可靠,无法调试。我不懂。不知道他们在使用过程中有什么问题。中国有个Antlr集团。我曾经是一个小组主持人,经常回答一些antlr的入门知识。没见过有人给出这样的反馈。

所谓的原始词法分析算法

语言解析技术至少已经有50年的历史了,这方面已经非常成熟。没想到还有原创空。我觉得这个成绩能不能衡量,要看能不能应用到多个场景。如果只是极简的词法分析,那就没有意义了。另外,可以请大神尹来评价一下。王银无疑是这方面的权威,他见多识广,善于批评。

看了一下提到的一些特性,我不这么认为,比如

原空和安全值调用运算符?

该功能在许多模板引擎中可用,以及从2011年开始可用的Betel,例如

用户可以为空或不存在,安全调用也可以在循环中使用

消除宏指令?

任何语言都要考虑如何复用。对于模板语言来说,重用模板非常重要。宏只是重用的一种方式。不管用什么技术,都只是重用的马甲。看看Beetl是怎么复用的。

像宏一样,比如标签,beetl支持两种标签,标签函数和html标签,比如下面这样的模板片段

这是一个类似html的重用,非常适合CMS中的模板渲染和自定义标签。而且它的实现非常简单,只需要创建一个位于htmltag/my/output.tag中的实现,其实就是一个模板片段。

另一个例子是模板变量

上面的代码定义了一个变量,它的值是模板的输出,所以您可以随时调用这个变量来计算和呈现它以供重用。此功能用于复杂的布局方法,如继承布局

JFinal的原创特色

Jfinal手册也提供了一些原创功能。在我看来,Beetl至少存在了很长时间。比如JFinal提到可以修改语法树节点的实现(其目的是在sql片段中输出sql占位符?),这个betel从2011年就有了,就这样。它的在线体验网站已经运行了90万次。例如,当您输入以下代码时

事实上,只运行了5次循环后,它就退出并给出警告。这是因为Beetl引擎修改了While的语法执行实现,发现循环超过5次就退出了。BeetlSql还利用了Beetl引擎的特性。当sql输出时,不是输出内容,而是输出?,以下是beetlsql片段

事实上,在渲染beetl模板之后,输出是

这也是因为beetl引擎可以修改语法节点的实现。这项技术从2012年就有了。我一直认为Beetl是真正原创的,在Jfinal3问世之前就引领了这一潮流

总结

总的来说,我觉得JFinal Template并没有给模板引擎带来多少新东西,不如Beetl。比如Beetl有很多功能。我觉得JFinal Template目前没有。

Html标记重用,类似于

带有绑定变量的标签,这个freemaker有,beetl有,在cms中用的很多

自定义占位符和分隔符,很多人喜欢beetl

在本地调用安全管理,这在beetl在线体验中也有。不知道jfinal是否也有这个功能。如果没有,如果用户输入@System.exit(),系统将关闭

语法节点实现修改,如上所述,这也是beetlsql实现的基础

虚拟属性实现

自定义函数和格式化函数

MVC分层开发和实现,前端开发者可以专注于前端开发

流行框架的集成

更多的语法特征,如for in,for(exp;expExp),同时,适应各种应用场景

国内外的许多绩效评估都是名列前茅的

还有更多特性没有一一列出。甜菜在中国已经很受欢迎了。甜菜和甜菜.本文无意推广Beetl,只是认为作为开源用户,在决定使用开源产品之前,我们需要对其进行分析,而不仅仅是看标语。俗话说,不看广告看疗效,希望能为犹豫不决的模板用户提供一个客观的参考。

推荐阅读

点击“阅读原文”查看更多精彩内容

1.《Beetl JFina 3.0 “重新定义的模板引擎”与 Beetl 的功能对比》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《Beetl JFina 3.0 “重新定义的模板引擎”与 Beetl 的功能对比》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1636623.html

上一篇

盖茨夫妇各自聘请贝索斯离婚案律师 决战1341亿美元 究竟发生了什么?

下一篇

“错换人生28年”案择期开庭 许敏方追加被告方杜新枝 事情经过真相揭秘!

英雄盒子 王者英雄盒子 (一款集合了众多有关于王者荣耀的小功能的应用)

英雄盒子 王者英雄盒子 (一款集合了众多有关于王者荣耀的小功能的应用)

软件 下载 软件 介绍 一个集成了很多关于王者荣耀的小功能的应用,比如技能线辅助,兵线BUFF倒计时等实用又酷的小功能...

"一键叫车"功能争取春节前开通 还原事发经过及背后真相!

"一键叫车"功能争取春节前开通 还原事发经过及背后真相!

近日"一键叫车"功能争取春节前开通成为热点引发关注,但是广大网友还不知道"一键叫车"功能争取春节前开通具体详细情况,现在小编给大家整理了部分"一键叫车"功能争取春节前开通事件的文章,大家可以点击链接进行详情了解。交通运输部:“一键叫车”功能争取春节前开通试运行中新网12月28日电 据交通运输部网站消息,12月25...

nfc是什么功能 华为、小米都支持的NFC功能,这个功能到底是干什么的?我们需不需要呢?

  • nfc是什么功能 华为、小米都支持的NFC功能,这个功能到底是干什么的?我们需不需要呢?
  • nfc是什么功能 华为、小米都支持的NFC功能,这个功能到底是干什么的?我们需不需要呢?
  • nfc是什么功能 华为、小米都支持的NFC功能,这个功能到底是干什么的?我们需不需要呢?
"一键叫车"功能争取春节前开通 这意味着什么?

"一键叫车"功能争取春节前开通 这意味着什么?

近日"一键叫车"功能争取春节前开通成为热点引发关注,但是广大网友还不知道"一键叫车"功能争取春节前开通具体详细情况,现在小编给大家整理了部分"一键叫车"功能争取春节前开通事件的文章,大家可以点击链接进行详情了解。交通运输部:“一键叫车”功能争取春节前开通试运行中新网12月28日电 据交通运输部网站消息,12月25...

同步小学课堂 AI+教育,城市漫步小漫在家教育机器人小学同步课堂功能

  • 同步小学课堂 AI+教育,城市漫步小漫在家教育机器人小学同步课堂功能
  • 同步小学课堂 AI+教育,城市漫步小漫在家教育机器人小学同步课堂功能
  • 同步小学课堂 AI+教育,城市漫步小漫在家教育机器人小学同步课堂功能

oppor11怎么投屏到电视 一键投屏,OPPO手机这个功能千万不要错过

  • oppor11怎么投屏到电视 一键投屏,OPPO手机这个功能千万不要错过
  • oppor11怎么投屏到电视 一键投屏,OPPO手机这个功能千万不要错过
  • oppor11怎么投屏到电视 一键投屏,OPPO手机这个功能千万不要错过

"一键叫车"功能争取春节前开通 事情的详情始末是怎么样了!

近日"一键叫车"功能争取春节前开通成为热点引发关注,但是广大网友还不知道"一键叫车"功能争取春节前开通具体详细情况,现在小编给大家整理了部分"一键叫车"功能争取春节前开通事件的文章,大家可以点击链接进行详情了解。交通运输部:“一键叫车”功能争取春节前开通试运行中新网12月28日电 据交通运输部网站消息,12月25...

儿童绘画模板 有这35个模板,孩子不愁画画没灵感

  • 儿童绘画模板 有这35个模板,孩子不愁画画没灵感
  • 儿童绘画模板 有这35个模板,孩子不愁画画没灵感
  • 儿童绘画模板 有这35个模板,孩子不愁画画没灵感