`
javamonkey
  • 浏览: 168371 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

beetl功能与Freemarker功能比较

 
阅读更多

东西好不好,先比一下功能,拿目前最流行的Freemarker来做比较


完全参考了
Freemarker 官方文档( 2.3.19 第一列是freemarker官方文档目录,第二列是表示 beetl 中是否具有同样的功能

通过下列表格,可以看出绝大部分功能, beetl 都是支持的


 

功能

是否支持

备注

1.1 简介

支持

 

1.2 模板 + 数据模型 = 输出

支持

 

1.3 数据模型一览

支持

 

1.4.1 简介

支持

 

1.4.2 (.1--.4) 指令示例

支持

Beetl 中,采用includeFileTemplate 标签来include 一个文件。Beetl 中还支持switch/case

1.4.2.5 处理不存在的变量

支持

不支持询问变量是否存在, 但可以通过扩展函数来支持

2.1 基本内容

支持

 

2.2.1 类型 简介

大部分支持

很少使用的节点类型 不支持

2.2.2 标量

支持

 

2.2.3 容器

支持

 

2.2.4 方法和函数

支持

可以通过扩展函数来间接支持

2.2.5 其它(节点类型)

不支持

 

3.1 总体结构

支持

 

3.2 指令

支持

 

3.3 表达式

支持

集合操作不支持,但可以通过扩展函数来实现集合操作。

截取字符串也不是内置的,但可以通过扩展函数来实现,如str.subString

3.3.3.1 字符串

支持

 

3.3.3.2 数字

支持

 

3.3.3.3 布尔值

支持

 

3.3.3.4 序列

支持

采用js 语法的json 格式支持。但不包括支持 start ..end 这样的方式

3.3.3.5 哈希表

支持

 

3.3.4 检索变量

支持

 

3.3.5 字符串操作

不支持

此语法很奇怪,只能说freemaker 复杂了语法

3.3.5.2 获取一个字符

支持

通过扩展函数支持

3.3.6.1 序列操作 连接

支持

通过扩展函数支持

3.3.6.2 序列切分

支持

通过扩展函数支持

3.3.7 哈希表操作 连接

支持

 

3.3.8 算数运算

支持

 

3.3.9 比较运算

支持

 

3.3.10 逻辑操作

支持

 

3.3.11 内建函数

支持

 

3.3.13 处理不存在的值

支持

通过扩展函数支持

3.3.13.1 默认值

部分支持

 

3.3.13.2 检测不存在的值

支持

 

3.3.14 括号

支持

 

3.3.15 表达式中的空格

支持

 

3.3.16 操作符的优先级

支持

数字范围 这个概念

3.4 插值

支持

 

4.1 自定义指令 (宏)

支持

间接通过标签等支持

4.1.4 嵌套内容

支持

Beetl 中主要用在layout 标签里

4.1.5 宏和循环变量

支持

 

4.2 在模板中定义变量

支持

 

4.3 命名空间

部分支持

通过扩展函数支持,

4.4 空白处理

支持

Beetl 中不需要此额外功能

4.5 替换(方括号)语法

支持

 

 

东西好不好,再比一下性能,那被公认为性能良好的Freemarker做比较

性能比较

单线程:

 

还是以常用模板为准(大小6K ),循环渲染50000 次,需要时间(毫秒为单位)如下

 

Beetl1.2M1 解释执行方式(普通模式),运行三次,分别 1356,1365,1348
Beetl1.2M1
编译执行方式(普通模式),运行三次,分别 913,922,905
Freemarker
分别是 1155,1130,1122
Beetl1.2M1
允许字节流优化,解释方式执行三次,分别是 587,605,610
Beetl1.2M1
允许字节流优化,编译方式执行三次,分别是 385,355,370

简而言之,对beetl 做运行时编译,byte 输出设定后,渲染5 万次6K 的模板,性能如下

Freemarker

Beetl

1140 毫秒

370 毫秒

 


及时不对beetl 做任何优化,性能也与Freemarker 持平


最后,向给位有志从事开源开发的朋友号召,无论你是工作10+年的老手,还是在学习就读的学生,如果愿意从事beetl开发和维护,我非常欢迎。我用了很多业余的精力去一个人搞一个开源的方方面面的工作,感到非常费神。我希望找一个能力突出,愿意去维护beetl开源的人。有想法可以留言。

分享到:
评论
5 楼 javamonkey 2016-11-21  
https://my.oschina.net/xiandafu/blog/789438
beetl 国内下载量貌似快跟freemaker的差不多了
4 楼 laj76333 2016-02-29  
支持标签嵌套吗?<%{}%><%{}%><%{}%><%{}%><%{}%>
3 楼 javamonkey 2015-11-27  
支持,去ibeetl.com 上了解吧
2 楼 laj76333 2015-11-26  
支持标签吗?<%{}%><%{}%><%{}%><%{}%><%{}%>
1 楼 酷沃哦 2015-03-25  
beetl支持集群吗?

相关推荐

    Velocity 和 FreeMarker区别

    ### Velocity与FreeMarker的区别 在IT领域特别是Java开发中,模板引擎是不可或缺的一部分,它们用于将数据模型转换为HTML、PDF、Word文档等格式。在众多模板引擎中,Velocity和FreeMarker是两种非常受欢迎的选择。...

    beetl模版引擎文档

    与其他Java模板引擎相比,Beetl具备功能全面、语法直观、性能极高的特点,它还支持HTML标签,易于维护,特别适合于需要快速响应的大网站和复杂的CMS管理系统。Beetl的核心特性可以概括为以下几点: 1. 功能完备:...

    Beetl模板引擎入门教程.pdf

    在IDE支持方面,Beetl可以很好地与各种开发环境集成,提供代码提示和自动完成功能,提升了开发体验。对于MVC架构,Beetl能够很好地配合Spring MVC、JFinal、Struts、Nutz以及Jodd等框架,实现高效的视图层渲染。 ...

    Beetl2.7.14中文文档.pdf

    Beetl是一款功能完备、语法直观、性能超高的新一代Java模板引擎,其版本为2.7.14。相较于其他Java模板引擎,Beetl在语法设计、性能表现、易用性等方面具有诸多优势。接下来,我们将详细探讨Beetl的关键知识点。 ###...

    Beetl 模版引擎

    根据性能比较,Beetl的引擎性能是Freemarker的5-6倍,JSP的2倍。 4. 易于整合:Beetl可以轻松整合到多种web框架中。 5. 支持模板单独开发和测试:即使在没有M和C部分的MVC架构中,也能进行模板的开发和测试。 6. ...

    Beetl 模板语言使用指南

    2. **功能全面**:Beetl提供了与Freemarker相当的功能,包括控制语句、占位符、变量定义、算术和逻辑表达式、循环、条件判断、函数调用、格式化等。此外,它还具备一些独特的功能,如自定义占位符、控制语句符号、...

    Beetl2.8中文文档

    Beetl是一款功能全面、语法直观、性能优越且易于维护的Java模板引擎,当前版本为2.8.3。相较于其他模板引擎,Beetl的语法与JavaScript类似,便于用户快速学习和掌握。其独特优势包括: 1. 功能完备性:Beetl不仅...

    spring boot集成beetl极简入门实例.zip

    4、易于整合:Beetl 能很容易的与各种 web 框架整合,如 Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet 等。 5、支持模板单独开发和测试,即在 MVC 架构中,即使没有 M 和 C 部分,也能开发和测试模板。 6、扩展...

    beetl1.26.04-guide.pdf

    Beetl的附录部分列出了函数、格式化函数、标签、与Freemarker的功能对比以及性能比较等信息。 Beetl的扩展包功能强大,可以自定义函数和格式化函数,以及使用标签等。Beetl还提供了宏支持和空格处理方法。 Beetl的...

    Beetl2.9 中文文档.pdf

    Beetl的性能表现卓越,其引擎性能是主流Java模板引擎FreeMarker的5-6倍,是JSP的2倍。这得益于宏观上的渲染引擎优化、IO二进制输出、字节码属性访问增强,以及微观上的上下文Context一维数组保存、静态文本合并处理...

    Beetl3 高速模板引擎

    与FreeMarker、Velocity等模板引擎相比,Beetl3在性能和易用性上有一定优势,且功能更全面。它的设计更贴近Java程序员的编程习惯,同时提供了更多的内置特性,如支持字符串拼接优化、自定义标签库等。 四、持续学习...

    基于Java的源码-Beetl java模板引擎.zip

    2. **与FreeMarker比较**:FreeMarker也是常用的Java模板引擎,但Beetl的语法更接近自然语言,且提供了更多的内置功能。 3. **与Velocity比较**:Velocity的语法与Beetl类似,但Beetl在性能和扩展性上有优势。 **...

    基于Java的实例源码-模板语言 Beetl.zip

    Beetl与FreeMarker、Velocity等其他Java模板引擎相比,其优势在于语法简洁、性能优越。然而,选择哪个模板引擎取决于项目需求和个人喜好,每种引擎都有其适用场景。 8. **应用场景** Beetl常用于Java Web开发,...

    Beetl java模板引擎.zip

    Beetl模板引擎是由中国的开源社区开发,它在设计上吸取了其他模板引擎的优点,如FreeMarker、Velocity等,并在性能、易用性、功能全面性等方面有所提升。Beetl支持丰富的语法结构,包括表达式、控制语句、函数、...

    Beetl模板引擎-其他

    关于性能:通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态...

    基于SpringBoot2+Freemarker的JPA/Mybatis等代码生成器设计源码

    该项目是一款基于SpringBoot2和Freemarker技术的代码生成器源码,包含202个文件,涵盖47个FTL模板、32个CSS样式文件、31个JavaScript脚本文件、25个Java类文件、9个HTML文件、8个PNG图像文件、7个映射文件、6个YAML...

    Spring MVC 集合各种功能点

    在Spring MVC中,可以与Thymeleaf或FreeMarker等其他模板引擎一起使用,为开发者提供灵活的视图渲染选项。 至于JSON,它是网络传输数据的一种常见格式,Spring MVC通过Jackson或Gson库,可以轻松地进行JSON对象的...

    spring-boot-demo:BootSpring Boot演示入门样例,包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板)解析),freemarker(模板解析),享受(模板解析),logback(日志),log-aop(AOP方式日志),ehcache(ehcache缓存),执行器(监控),admin(监控),swagger

    JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析),enjoy(模板解析),并包含一些整合多个功能模块的090-...

Global site tag (gtag.js) - Google Analytics