您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Beetl模板引擎入门教程.pdf
  所属分类: 其它
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2019-10-20
  提 供 者: qq_16******
 详细说明: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最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: beetl如何使用sql模板
 输入关键字,在本站1000多万海量源码库中尽情搜索: