当前位置: 首页 > news >正文

beetl的内置函数 (如strutil 工具类)

转自:http://ibeetl.com/guide/

2.19. 函数调用

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();

 

2.3. 模板基础配置

#####  扩展 ##############
## 内置的方法
FN.date = org.beetl.ext.fn.DateFunction
......
##内置的功能包
FNP.strutil = org.beetl.ext.fn.StringUtil
......
##内置的默认格式化函数
FTC.java.util.Date = org.beetl.ext.format.DateFormat

、、、、、、、、、、、、、、、、、、、、、、
5.1.2. 字符串相关方法

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
5.1.3. 数组相关方法
  • 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,''])
5.1.4. 正则表达式相关方法
  • 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是最多返回个数

 




转载于:https://www.cnblogs.com/YuyuanNo1/p/9808991.html

相关文章:

  • JDK命令行(jps、jstat、jinfo、jmap、jhat、jstack、jstatd、hprof)与JConsole
  • Aliyun ECS 重置系统
  • Composite组合模式(结构型模式)
  • SQL基础知识
  • 开放源代码库指南
  • WPF换肤之三:WPF中的WndProc
  • 【转】VUE 爬坑之旅-- 如何对公共JS,CSS进行统一管理,全局调用
  • 各个浏览器之间常见的兼容性问题
  • 为什么需要RPC,而不是简单的HTTP接口
  • 和开源硬件相关的几个词,免费、山寨、创客教育,以及未来 | COSCon'18
  • 2018云计算行业现状及2020年云计算发展趋势
  • 当我们谈论Promise时,我们说些什么
  • 谷歌推迟公布Google+漏洞遭参议员不满
  • 今日头条完成超25亿美元融资 软银GA与KKR参与
  • iOS开发中实用的lldb命令
  • Akka系列(七):Actor持久化之Akka persistence
  • Android系统模拟器绘制实现概述
  • ECMAScript入门(七)--Module语法
  • ESLint简单操作
  • Java反射-动态类加载和重新加载
  • LeetCode算法系列_0891_子序列宽度之和
  • MySQL数据库运维之数据恢复
  • 多线程事务回滚
  • 工程优化暨babel升级小记
  • 基于HAProxy的高性能缓存服务器nuster
  • 前端代码风格自动化系列(二)之Commitlint
  • 手写一个CommonJS打包工具(一)
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • elasticsearch-head插件安装
  • MPAndroidChart 教程:Y轴 YAxis
  • python最赚钱的4个方向,你最心动的是哪个?
  • 数据库巡检项
  • ​虚拟化系列介绍(十)
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (9)目标检测_SSD的原理
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core使用ef 6
  • .net 微服务 服务保护 自动重试 Polly
  • .NET成年了,然后呢?
  • .考试倒计时43天!来提分啦!
  • @RestControllerAdvice异常统一处理类失效原因
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [C++]unordered系列关联式容器