Beetl与Freemarker 比较
一章一章的看了Freemarker官方网站的使用说明,觉得Beetl功能与Freemarker功能应该是差不多的。打算在Beetl正式发布前,也按照Freemarker文档的组织结构,写一个对应的详细使用说明
Beetl的优势在于
使用更简单
: 类似javascript语法,不用额外的学习成本
更小
:大小不到350K
更具有扩展性
:支持自定义函数,文本处理函数(标签),格式化函数
MVC限制
:即允许严格的MVC限制,也允许使用标准MVC限制 , 也允许打开后门,直接调用java类,支持这三种MVC限制
对原文件无侵入性
:众所周知,文件一旦变成模板,就不在是文件,只能被模板引擎识别,Beetl模板对原文件侵入性很低
更好性能 :可以在运行时优化成java代码,具有最高效的使用
编译成class后的错误处理很赞
大多数web容器对JSP运行的错误处理不好,虽然打印出错误栈,但很难让开发者找到错误行。对于Beetl来说,默认的错误处理不仅打出错误栈,而且还显示出模板文件所在行数已经上下3行的内容:如下
一个简单的模板如下
<%
var a= 3;
var b = 2/0;
%>
$b$
运行后会打印出如下信息
ERROR 位于3行
1|<%
2|var a= 3;
3|var b = 2/0;
4|%>
5|$b$
java.lang.ArithmeticException: / by zero
at test.first_html.service(first_html.java:15)
at org.bee.tl.core.PreCompiledClass.service(PreCompiledClass.java:170)
at org.bee.tl.core.CompiledBeeTemplate.runAsPreCompiledClass(CompiledBeeTemplate.java:86)
at org.bee.tl.core.CompiledBeeTemplate.getText(CompiledBeeTemplate.java:52)
at org.bee.tl.core.AbstractTemplate.getTextAsString(AbstractTemplate.java:91)
at org.bee.tl.core.GroupTemplate.main(GroupTemplate.java:429)
Beetl switch 例子
<%
var str = "beetl";
var a = 0;
switch(str){
case "velocity":{
a = 0;
break;
}
case "freemarker":{
a = 1;
break;
}
case "beetl":{
a = 3;
break;
}
}
%>
$a$
将会编译成如下代码
public void service(Writer writer,Context ctx) throws IOException,BeeException{
ctx.set("____group",group);
ctx.set("____this",template);
BeetlWriter out = new BeetlWriter(writer,this);
String str="beetl";
int a=0;
List _caseList15_0 = new
ArrayList();_caseList15_0.add("velocity");_caseList15_0.add("freemarker");_caseList15_0.add("beetl");
switch(_caseList15_0.indexOf(str)){
case 0:{
a=0;
break;
}
case 1:{
a=1;
break;
}
case 2:{
a=3;
break;
}
}
out.write(a);
out.write(__VCR);
}
/* 原模板中的所有字符串定义到这儿*/
private static char[] __VCR = "\r\n".toCharArray();
/* 原模板Cached标示*/
public long getVersion(){
return 1321085218968l;
}
Missing Value
可以在变量后面加 !字符串 指示Beetl 如果变量为空,则显示!后面的字符串,如下例子
$user.wife.bir!'N/A',dateformat$ ;
如果user为空,或者user.wife为空,则显示"N/A",可以看看编译后的代买片段
if(user!=null&&user.getWife()!=null){
out.write(user.getWife().getBir(),"dateformat");
}else{
out.write("N/A");
}
相关推荐
SpringBoot、Beetl 和 BeetlSQL 是三个在Java开发领域广泛应用的技术,它们结合在一起可以构建高效、简洁的Web应用程序。下面将详细解释这三个技术及其整合应用。 **SpringBoot** SpringBoot是由Pivotal团队提供的...
**Spring Boot 集成 Beetl 简单示例** Spring Boot 是一款基于 Java 的轻量级框架,它简化了 Spring 应用的初始搭建以及开发过程。Beetl 则是一款强大的模板引擎,旨在提供高效、简洁的模板语言,帮助开发者在 Web ...
Beetl2.2.3 jar包是一款高效且功能丰富的视图层模板解析引擎,它在Java开发领域中被广泛使用。Beetl以其简洁的语法、强大的性能和易用性,深受开发者们的喜爱。这款引擎能够与各种MVC框架无缝集成,极大地提高了Web...
在本文中,我们将深入探讨如何将Spring Boot框架与Beetl和BeetlSQL结合使用,以构建一个高效且易于维护的Web应用。Spring Boot以其快速启动和简化配置的特性,已经成为Java开发者的首选框架。而Beetl和BeetlSQL则是...
Beetl是一个新一代Java模板引擎,其版本为2.7.18。与其他Java模板引擎相比,Beetl具备功能全面、语法直观、性能极高的特点,它还支持HTML标签,易于维护,特别适合于需要快速响应的大网站和复杂的CMS管理系统。Beetl...
本项目为基于Jfinal框架、MySQL数据库和Beetl模板引擎构建的简易博客系统源码,总计包含272个文件,涵盖151个GIF图像、34个JavaScript文件、18个JAR库文件、18个HTML页面、17个Java源代码文件、7个PNG图像、6个CSS...
beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar beetl-2.7.14.jar
赠送jar包:beetl-2.5.2.jar; 赠送原API文档:beetl-2.5.2-javadoc.jar; 赠送源代码:beetl-2.5.2-sources.jar; 赠送Maven依赖信息文件:beetl-2.5.2.pom; 包含翻译后的API文档:beetl-2.5.2-javadoc-API文档-...
在本项目中,我们主要利用了三个核心技术:Beetl、MySQL和SpringBoot,构建了一个功能完备的博客系统。下面将详细阐述这三个技术及其在项目中的应用。 首先,Beetl是一个高性能、轻量级的Java模板引擎。它提供了一...
【标题】"beetl 模板demo"指的是一个基于Beetl模板引擎的示例项目,用于展示如何在Java Web应用中集成并使用Beetl。Beetl是一款强大的、高效的、易用的Java模板引擎,适用于各种类型的应用开发,尤其是Web应用。 ...
【标题】"SpringBoot+Beetl+MyBatis"是一个常见的Java开发框架组合,用于构建高效、便捷的Web应用程序。这个组合将Spring Boot的快速开发能力、Beetl的模板引擎以及MyBatis的持久层框架巧妙地融合在一起,为开发者...
在本文中,我们将深入探讨如何在Spring Boot项目中集成Beetl模板引擎,以实现高效、灵活的视图渲染。Spring Boot是Java开发中的一个热门框架,它简化了配置并提供了快速开发的能力。而Beetl则是一款强大的、高性能的...
spring boot集成beetl极简入门实例 项目描述 springboot集成beetl极简入门实例 Beetl 是新一代 Java 模板引擎典范。相对于其他 java 模板引擎,具有功能齐全,语法直观,性能超高,开发和维护模板有很好的体验。是...
BeetlSQL是一款优秀的Java ORM(对象关系映射)框架,它是MyBatis的一个轻量级替代品,设计目标是让SQL书写更加直观、简洁。本压缩包"beetlsql.zip"包含了六个使用BeetlSQL的实际项目案例,旨在帮助开发者更好地理解...
Beetl是一款高性能的Java模板引擎,源自中国,它的性能比Freemarker高6倍,因此在处理大量数据渲染时,能显著提升效率。Beetl不仅作为一个模板引擎,还包含了一个强大的ORMapping工具——BeetlSQL,该工具以SQL为...
【标题】"beetl2demo" 指的是一款基于Beetl 2.x版本的演示项目,它是一个用于教学和实践的示例代码库。这个项目的主要目的是帮助开发者了解和掌握Beetl模板引擎的用法,通过实际操作来体验其功能和特性。 【描述】...
【beetl-json】是一个专为Java开发人员设计的库,用于将后端处理的数据转换成JSON(JavaScript Object Notation)格式,以便于前端应用程序进行交互和展示。JSON是一种轻量级的数据交换格式,因其易读性、易写性和...
Beetl是一款功能完备、语法直观、性能超高的新一代Java模板引擎,其版本为2.7.14。相较于其他Java模板引擎,Beetl在语法设计、性能表现、易用性等方面具有诸多优势。接下来,我们将详细探讨Beetl的关键知识点。 ###...
SpringBlade是一个全面而强大的企业级开发框架,它基于一系列成熟的技术栈,包括Spring、SpringMVC、Beetl、BeetlSQL以及Shiro,旨在简化开发过程,提高开发效率,并提供完整的权限管理功能。下面将分别介绍这些技术...
beetl-spring-boot-starter,beetl 自动配置 Spring 启动。使用:从 maven 导入该库 <groupId>com.piggsoft</groupId> <artifactId>beetl-spring-boot-starter <version>0.0.1 配置 application....