文档章节

beetl的内置函数

gantaos
 gantaos
发布于 10/21 18:02
字数 1432
阅读 13
收藏 0
函数调用
Beetl内置函数请参考附录,以下列出了常用的函数

date 返回一个java.util.Date类型的变量,如 date() 返回一个当前时间(对应java的java.util.Date); ${date( "2011-1-1" , "yyyy-MM-dd" )} 返回指定日期,date(ms),指定一个毫秒数。相当于调用java.util.Date(ms)
print 打印一个对象 print(user.name);
println 打印一个对象以及回车换行符号,回车换号符号使用的是模板本身的,而不是本地系统的.如果仅仅打印一个换行符,则直接调用println() 即可
nvl 函数nvl,如果对象为null,则返回第二个参数,否则,返回自己 nvl(user,"不存在")
isEmpty 判断变量或者表达式是否为空,变量不存在,变量为null,变量是空字符串,变量是空集合,变量是空数组,此函数都将返回true
isNotEmpty 同上,判断对象是否不为空
has 变量名为参数,判断是否存在此"全局变量",如 has(userList),类似于1.x版本的exist("userList"),但不需要输入引号了.注意,has和isEmpety 判断的是从java传到模板的全局变量,而不是临时变量
hasAttrbiute 测试目标对象是否有此属性,hasAttribute(user,"name")
assert 如果表达式为false,则抛出异常
trim 截取数字或者日期,返回字符,如trim(12.456,2)返回"12.45",trim(date,'yyyy')返回"2017"
trunc 截取数字,保留指定的小数位,如trunc(12.456,2) 输出是12.45.不推荐使用,因为处理float有问题,兼容原因保留了
decode 一个简化的if else 结构,如 decode(a,1,"a=1",2,"a=2","不知道了"),如果a是1,这decode输出"a=1",如果a是2,则输出"a==2", 如果是其他值,则输出"不知道了"
debug 在控制台输出debug指定的对象以及所在模板文件以及模板中的行数,如debug(1),则输出1 [在3行@/org/beetl/core/lab/hello.txt],也可以输出多个,如debug("hi",a),则输出hi,a=123,[在3行@/org/beetl/core/lab/hello.txt]
parseInt 将数字或者字符解析为整形 如 parseInt("123");
parseLong 将数字或者字符解析为长整形,parseInt(123.12);
parseDouble 将数字或者字符解析为浮点类型 如parseDouble("1.23")
range 接收三个参数,初始值,结束值,还有步增(可以不需要,则默认为1),返回一个Iterator,常用于循环中,如for(var i in range(1,5)) {print(i)},将依次打印1234.
flush 强制io输出。
json,将对象转成json字符串,如 var data = json(userList) 可以跟一个序列化规则 如,var data = json(userList,"[*].id:i"),具体参考 https://git.oschina.net/xiandafu/beetl-json
pageCtx ,仅仅在web开发中,设置一个变量,然后可以在页面渲染过程中,调用此api获取,如pageCtx("title","用户添加页面"),在其后任何地方,可以pageCtx("title") 获取该变量
type.new 创建一个对象实例,如 var user = type.new("com.xx.User"); 如果配置了IMPORT_PACKAGE,则可以省略包名,type.new("User")
type.name 返回一个实例的名字,var userClassName = type.name(user),返回"User"
global 返回一个全局变量值,参数是一个字符串,如 var user = global("user_"+i);
cookie 返回指定的cookie对象 ,如var userCook = cookie("user"),allCookies = cookie();
字符串相关方法
strutil方法对参数均不做空指针检测,你可自定义方法来覆盖这些内置的方法

strutil.startWith ${ strutil.startWith("hello","he")} 输出是true
strutil.endWith ${ strutil.endWith("hello","o")} 输出是true
strutil.length ${ strutil. length ("hello")},输出是5
strutil.subString ${ strutil.subString ("hello",1)},输出是"ello"
strutil.subStringTo ${ strutil.subStringTo ("hello",1,2)},输出是"e"
strutil.split ${ strutil.split ("hello,joeli",",")},参数第一个是字符串,第二个是正则表达式。输出是数组:返回第一个是"hello",第二个是"joelli"
strutil.contain ${ strutil.contain ("hello,"el")},输出是true
strutil.toUpperCase ${ strutil.toUpperCase ("hello")},输出是HELLO
strutil.toLowerCase ${ strutil.toLowerCase ("hello")},输出是hello
strutil.replace ${ strutil.replace ("hello","lo","loooo")},输出是helloooo
strutil.format ${ strutil.format ("hello,{0}, my age is {1}","joeli",15)},输出是hello,joeli, my age is 15. 具体请参考http://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html
strutil.trim 去掉字符串的尾部空格
strutil.formatDate var a = strutil.formatDate(user.bir,'yyyy-MM-dd')};
strutil.index var index = strutil.index("abc","a");返回 索引0
strutil.lastIndex var index = strutil.lastIndex("aba","a");返回索引2
数组相关方法
array.range 返回数组或者Collection一部分,接受三个参数,第一个是数组或者Collection子类,第二,三个参数分别是起始位置
array.remove 删除某个数组或者Collection的一个元素,并返回该数组或者Collection.第一个是数组或者Collection子类,第二个参数是元素
array.add 向数组或者Collection添加一个元素,并返回该数组或者Collection。第一个是数组或者Collection子类,第二个参数是元素
array.contain 判断数组或者元素是否包含元素,如果包含,返回true。否则false。第一个是数组或者Collection子类,第二个参数是元素
array.toArray 转化成数组,如array.toArray(1,2,"a");
array.collection2Array 将java集合转化为数组 array.collection2Array([1,2,''])
正则表达式相关方法
reg.match(str,regex) str为需要处理的字符串,regex是表达式
reg.replace(str,regex,replace),str为需要处理的字符串,regex是表达式,替换的字符串替换字符串
reg.find(str,regex) 返回找到的符合表达式的第一个字符串,否则返回空字符串
reg.findList(str,regex) 找到所有符合表达式的字符串,否则返回空列表
reg.split(str,regex),对字符串进行切分,返回列表
reg.split(str,regex,limit) 同上,limit是最多返回个数

 

本文转载自:http://ibeetl.com/guide/#/beetl/basic

gantaos
粉丝 0
博文 39
码字总数 9666
作品 0
巴南
程序员
私信 提问
05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》

本期视频实现了博客的详情页面; 内容简介:使用了标签函数layout完成详情功能 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK ------------ 标...

Gavin-King
2018/12/11
191
0
Java 模板引擎 Beetl 2.7.26 发布,Bug 修复

本次发布修订了几个因为错误提示不明显的bug #333 安全输出不仅仅可用于变量引用,也可以用于方法调用表达式里 #332 错误提示信息调用栈打印信息有误,这是上个版本调整带来的bug #331 cook...

闲大赋
2018/01/08
1K
9
Beetl 3.0.11 版本发布,Java 模板引擎

本次发布增加按照社区要求增加了一些类似JSTL的标签函数,内置如下html标签 如下例子 include包含file属性指名一个模板路径,后面若干属性可选,会在子模板里引用 同layout标签函数,包含必须...

闲大赋
08/16
1K
13
Beetl 2.0.10 发布,Java 模板引擎

Beetl 2.0.10 发布,此版本更新内容如下: 新增功能: 1 提供更好的基类GeneralVarTagBinding 来实现html 标签的变量绑定 2 ResouceLoade 增强exist 方法用于判断 模板是否存在 3 增强了异常...

闲大赋
2014/07/11
2.1K
13
BeetlSQL,简单和强大数据库访问工具(更新)

beetlsql 特点 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 无需注解,自动生成大量...

闲大赋
2015/08/17
11.9K
61

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot Actuator监控使用详解

在企业级应用中,学习了如何进行SpringBoot应用的功能开发,以及如何写单元测试、集成测试等还是不够的。在实际的软件开发中还需要:应用程序的监控和管理。SpringBoot的Actuator模块实现了应...

程序新视界
8分钟前
4
0
JDBC+C3P0+DBCP 基本使用

1.概述 这篇文章主要说了JDBC的基本使用,包括Statement,PreparedStatement,JDBC的连接,Mysql创建用户创建数据表,C3P0的连接与配置,DBCP的连接与配置. 2.mysql的处理 这里的JDBC使用Mysql作为...

Blueeeeeee
今天
7
0
MVC Linux下开发及部署

linux使用的是 Ubuntu 64 位 18.04.2 LTS 首先复制C:\Program Files (x86)\Embarcadero\Studio\20.0\PAServer 下 LinuxPAServer20.0.tar.gz 到 linux 目录下 运行链接编译程序 delphi环境配置......

苏兴迎
今天
11
0
3.控件及其属性

1.文本 2.按钮

横着走的螃蟹
今天
9
0
安装Genymotion模拟器慢的解决方案

第一步点击下载, C:\Users\Administrator\AppData\Local\Genymobile\genymotion.log 中搜索 ova 会发现这个文件 使用迅雷下载即可. 在 虚拟机中导入这个.ova 文件 即可安装...

chenhongjiang
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部