开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-10-20
详细说明:
Beetl是一款6倍于Freemarker的超高性能的java模板引擎,来自于中国!!BeetlSQL是一款功能强大,以SQL为中心,使用简单的全功能的ORMapping工具,支持自动生成代码2.基本用法
2.1.安装
如果使用 maven,请使用如下坐标
com. ibeetl
2.9.3
如果非maven工程,直接下载http:/lgit.oschina.net/xiandafu/beetl2.0/attach_files
22.从 Group Template开始
stringfemplateResourceloader resourceLoader =new
StringtemplateResourceloader();
Configuration cfg Configuration defaultconfiguration()
Grouptemplate gt= new Groupremplate (resourceLoader, cfg)
template t gt. getremplate( hello, siname")i
binding( name",beetl)i
string str trender(;
System. out. println(str);
BeetlE的核心是 GroupTemplate,是一个重量级对象,实际使用的时候建议使用单模式创建,创建
Group Template需要俩个参数,一个是模板资源加载器,一个是配置类,模板资源加载器Bet内置
了6种,分别是
StringTemplate ResourceLoader:字符串模板加载器,用于加载字符串模板,如本例所示
FileResourceloader:文件模板加载器,需要一个根目录作为参数构造,传人 getTemplate方法
的 String是模板文件相对于Rot目录的相对路径
Classpath ResourceLoader:文件模板加载器,模板文件位于 Classpath里
WebApp ResourceLoader:用于 webapp集成,假定模板根目录就是 Webroot目录,参考Web
集成章
MapResourceLoader:可以动态存入模板
CompositeResourceLoader混合使用多种加载方式
代码錦5行将变量name传入模板里,其值是"Beet"。代码第6行是渲染模板,得到输岀, template提
供了多种获得渲染输岀的方法,如下
template render0返回渲染结果,如本例所示
template render To(Writer)渲染结果输出到 Writer里
template. renderTo( Outputstream)渲染结果输出到 Outputstrean里
1.Beet支持为模板自定义定界符和占位符,如本例子采用的默认占位符号$}
2.占位符用于输出变量。如果想引用变量,可直接使用变量名,这不同于 Velocity,
Thymeleaf等其他模板语
13.如果不想写代码直接体验Beet,可以使用htp/ / coma/ beetlonline/
2.3.模板基础配置
Beetl提供不但功能齐全,而且还有很多独特功能,通过筒单的配置文件,就可以定义众多的功能,默
认情况下, Configuration类总是会先加载默认的配置文件(位于/org/beet/ore/beet
default. properties,作为新手,通常只需要关注3,4,5,6行定界符的配置,以及12行模板字符集的配
置就可以了,其他配置会在后面章节陆续提到,同时,对于 Spring等框架,有些配置将会被这些框架的
配置覆盖,需要参考后面章节)下,其內容片断如下
#默认配置
ENGINE=org. beetl core engine. DefaultTemplateEngine
DELIMITER PLACEHOLDER START=S(
DELIMITER PLACEHOLDER END=)
DELIMITER STATEMENT START=<8
DELIMITER STATEMENT END=8>
DIRECT BYTE OUTPUT E FALSE
HTML TAG SUPPORT true
HTML TAG FLAG =
HTML TAG BINDING ATTRIBUTE = var
NAT工 VE CALT=TRUE
TEMPLATE CHARSET UTF-8
ERROR HANDLER org beetl core. ConsoleErrorHandler
NATIVE SECUARTY MANAGER= org. beetl core. DefaultNativeSecurityManager
MVC STRICT FALSE
#资源配置, resource后的属性只限于特定 Resourceloader
RESOURCE LOADER=org. beetl core. resource. ClasspathResourceloader
#c1 asspath根路径
RESOURCE。yOot=/
#是否检测文件变化,开发用true合适,但线上要改为fa1se
RESOURCe autocheck= true
#自定义脚本方法文件的Root目录和后缀
RESOURCE. functionRoot functions
RESOURCE. function Suffix html
#自定义标签文件Root目录和后缀
RESOURCE. tagRoot htmltag
RESOURCE. tagsuffix = tag
并并##扩展#并并并并并并并并并并并并#
#内置的方法
FN. date org beetl ext fn. DateFunction
。0。
#内置的功能包
FNP.strutil org beetl ext. En. Stringutil
#内置的默认格式化函数
FTC.javautil. Date org beetl ext format. DateFormat
##标签类
TAG include= org. beetl ext tag. IncludeTag
这配置文件整体说明了Beet提供的功能
第2行配置引擎实现类,默认即可
第3,4行指定了占位符号,默认是s{},也可以指定为其他占位符
第56行指定了请句的定界符号,默认是<8>,也可以指定为其他定界符号
第7行指定O输岀模式,默认是 FALSE,即通常的字符翰岀,在考虑高性能情况下,可以设置
成true。详细请参考高级用法
第8,9行指定了支持HTML标签,且符号为#,默认配置下,模板引擎识别<#aqx/#tag>这样的类
似htm标签,并能调用相应的标签函数或者模板文件。你也可以指定别的符号,如bg:则识别,则在 beetl properties加入一行即可并将
此配置文件放入 Classpath根目录下即可。 Configuration. default Configuration()总是先加载系
统默认的,然后再加载Beet, properties的配置属性,如果有重复,用后者代替前者的配置
自定义配置
DELIMITER STATEMENT START=
2.4.0新功能:beet支持通过模板本生来完成函数,即模板函数,或者通过模板来实现HTML标
签(而不用写java代码),可以 beetl properties为这种应用设置的不同的语句定界符来跟常规
模板做区分,如下
FUNCTION TAG LIMITER=<号;号>
分号分割开,如果配置文件没有 FUNCTION_TAG_ LIMITER=,则模板函数,htm标签使用
ODELIMITER STATEMENT START, DELIMITER STATEMENT END
2.4.模板资源加载器
资源加载器是根据 String值获取Resσurce实例的工场类,同时资源加载器还要负责响应模板引擎询冋
模板是否变化的调用。对于新手来说,无需考虑模板资源加载器如何实现,只需要根据自己场景选择
系统提供的三类模板资源加载器即可
2.4.1.字符串模板加载器
在创建 GroupTemplate过程中,如果传入的是 String Template ResourceLoader,则允许通过调用
It. getTemplate(String template)来获取模板实例对象,如2.1所示
2.42.文件资源模板加载器
更通常憤况下,模板资源是以文件形式管理的,集中放在某一个文件目录下(如 webapp的模板根目
录就可能是wEB- NF/template里),因此,可以使用 File resourceloader来加载模板实例,如下代
string root System getproperty( user.dir")+File separator+"template";
FileResourceloader resourceLoader new FileResourceLoader(root, utf-8)i
Configuration cfg Configuration. defaultConfiguration()
GroupTemplate gt new GroupTemplate(resourceLoader, cfg)i
Template t= gt. getTemplate("/so1/hello.txt")
String str =trender(
System. out. println(str)i
第1行代码指定了模板根目录,即位于项目工程下的 template目录第2行构造了一个资源加载器,并
指定字符集为UTF-8(也可不指定,因为配置文件默认就是UTF-8);第5行通过模板的相对路
径/501/ hello.txt来加载模板
2.4.3. Classpath资源模板加载器
还有种常情况下:模板资源是打包到j文件或者同Cass放在一起,囚此,可以使用
ClasspathResource Loader来加载模板实例,如下代码
ClasspathResourceLoader resourceloader =new
classpathResourceloader("org/beetl/sample/s01/")
Configuration cfg Configuration. defaultconfiguration()
Grouptemplate gt= new Groupremplate (resourceLoader, cfg)
Template t= gt. getremplate("/hello. txt ");
String str trender()i
System. out. println(str)i
第1行代码指定了模板梫目录,即搜索模板的时候从根目录开始,如果new
ClasspathResourceLoader(" template/",则表示搜索 template下的模板。此处用空构造函数,表示搜
索路径是棖路径:且字符集默认字符集UTF-8.
第4行通过模板的相对路径org/beet/ sample/s01/heo.tx来加载模板
24.4. WebApp资源模板加载器
WebAppResource Loader是用于web应用的资源模板加载器,默认根路径是 WebRoot目录。也可以
通过制定root属性来设置相对于 Web root的的模板根路径,从安全角考虑,建议放到WEB-ⅠNF目录下
如下是」 Final集成里初始化 GroupTemplate的方法
Configuration cfg= Configuration. defaultConfiguration()i
WebAppResourceLoader resourceLoader new WebAppresourceloader()
groupTemplate new GroupTemplate(resourceLoader, cfg)i
WebAppResourceloader假定 beetl,jar是位于WEB-NF/ib日录下,囚此,可以通过
WebAppResourceloader类的路径来推断出 Webfoot路径从而指定模板根路径。所有线上环境
般都是如此,如果是开发环境或者其他环境不符合此假设,你需要调用
resourceloader setRoot()来指定模板更路径
2.4.5.自定义资源模板加载器
有时候模板可能来自文件系统不同目录,或者模板一部分来自某个文件系统,另外一部分来自数据
库,还冇的情况模板可能是加密混淆的模板,此时需要自定乂资源加载,继承ResσuceLσader才能实
现模板功能,这部分请参考高级部分
25.定界符与占位符号
Beet模板语言类似S语言和习俗:只需要将Beet语言放入定界符号里即可,如默认的是<%%>,占位
符用于静态文本里嵌入占位符用于输出,如下是正确例子
var a= 2
var b =3:
var result= atb
hello 2+3=Result
千万不要在定界符里使用占位符号,囚为占位符仅仅嵌在静态文本里,如下例子是错误例子
var a =hi"a
varc=S{a}+"beet1";//应该是varc=a+"beet1
每次有人问我如上例子为啥不能运行的时候,我总是有点憎恶 velocity带来的这种非人性语法
定界符和占位符通常还有别的选择,如下定界符
和回车换行(此时,模板配置DELM| TER STATEMENT END=或者
DELIMITER STATEMENT END=nu都可以)
●#:和回车换行
!-:和
#和
8*/8>
第2行是一个多行注释
第3行是一个单行注释
第5行到第8行采用的是多行注释,因此里面有内容也是注释,模板将不予处理
2.7.临时变量定义
在模板中定义的变量成为临时变量,这类似js中采用var定义的变量,如下例子
var a =3:
var b=3,c=abcd=true, e=null
Varf=[1;2,3];
var g=ikeyl:a, key2:c)i
var i=a+b:
28.全局变量定义
全局变量是通过 template binding传入的变量这些变量能在模板的任何一个地方,包括子模板都能访
问到。如ava代码里
template binding( list",service. getUserlist())i
//在模板里
<各
for(user in list)t
号>
hello, suser namei
各>
自从2.8.0版本后,有一个特殊的变量成为root变量,当模板找不到变量的时侯,会寻找root变
量的属性来作为变量的值,这个root变量必须绑定为"root
template binding( root", new User();
//在模板里
sname
swife name)
这里name和wfe都是User对象的属性
29.共享变量
共享变量指在所有模板中都可以引用的变量,可通过 group Template. set sharedvar(Map< String
Object> sharedvars)传入变量,这些变量能用在所有模板的任何一个地方
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.