java velocity 数组_VELOCITY 数组操作

常用方法:

$myarray.isEmpty()数组是否为空

$myarray.size()获取数组元素个数

$myarray.get(2)获取数组指定下标的元素

$myarray.add()增加元素

数组 & 访问

Velocity 访问数组对象,无法通过类似 arr[2] 来访问特定位置的元素。

#set($arr = [0, 1, 2, 3])

$arr.get(2)

注:Velocity 中的数组对应 Java 中的 List 对象。对于 Java 原生 Array 对象, 只能够 #foreach 进行遍历,无法使用 $arr[0] 和 $arr.get(0) 方法。

范围(range)

#foreach($item in [10..20])

$item

#end

对象 & 访问

#set($obj = {“key”:”value”, “name”:”space”})

$obj.get(“key”)

#foreach(#item in $obj)

$item

#end

上面的 $item 取到的是 values,如果需要在遍历对象过程中,同时取到对象的 keys, 可以使用 entrySet() 或 keySet() 方法。

#foreach($item in $!obj.entrySet())

$!item.key : $!item.value

#end

#foreach($item in $obj.keySet())

$item : $obj.get($item)

#end

注: 这种集合的遍历是无序的,即遍历顺序可能不同于 $obj 中元素的定义顺序 (据目前所知,是根据键的字母排序的)。

另外有两种不完美解决方法:

I:

#set($obj = [

{“key”:”key”, “value”:”value”},

{“key”:”name”, “value”:”space”}

])

#foreach($item in $obj)

$item.key : $item.value

#end

II:

#set($obj = [

[“key”,”value”],

[“name”,”space”]

])

#foreach($item in $obj)

$item.get(0) : $item.get(1)

#end

之所以说 不完美 是因为:对于已知的 key,本可以直接

$obj.get(“key”)

现在只能遍历并进行比较取得,而且较早的 Velocity 版本无法使用 #break, 以便在找到匹配项之后立即退出循环。

#foreach($item in $obj)

#if(“key” == $!obj.get(0))

#set($myKey = $!type.get(1))

##break

#end

#end

更多资料内容可参看:

http://wiki.hotoo.me/Velocity-Notes.html

http://wiki.hotoo.me/Velocity.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Beetl相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,开发和维护模板有很好的体验。是新一代的模板引擎。总得来说,它的特性如下: 1、功能完备:同主流的java模板引擎相比,Beetl具有绝大多数功能。适用于各种应用场景,从对响应速度有很高要求的大网站到功能繁多的CMS管理系统都适合。Beetl本身还具有很多独特功能来完成模板编写和维护,这是其他模板引擎所不具有的。 2、非常简单:类似Javascript语法和习俗,只要半小时就能通过半学半猜完全掌握用法。拒绝其他模板引擎那种非人性化的语法和习俗。 3、超高的性能:Beetl 远超过主流java模板引擎性能,如5-6倍于freemarker,2倍于传统jsp技术。而且消耗较低的CPU 4、易于整合:Beetl能很容易的与各种web框架整合,如Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet等。 5、支持模板单独开发和测试,即在MVC架构中,即使没有M和C部分,也能开发和测试模板。 6、扩展和个性化:Beetl支持自定义方法,格式化函数,虚拟属性,标签,和HTML标签。同时Beetl也支持自定义占位符和控制语句起始符号也支持使用者完全可以打造适合自己的工具包。 关于性能: 通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态文本,通过重复使用字节数组来防止java频繁的创建和销毁数组,还使用模板缓存,运行时优化等方法。 独特功能: Beetl有些功能是发展了10多年的模板引擎所不具备的,这些功能非常利于模板的开发和维护,如下: 1、自定义占位符和控制语句起始符号,这有利于减小模板语法对模板的倾入性,比如在html模板中,如果定义控制语句符号是,那么,大部分模板文件都能同过浏览器打开。有的使用者仅仅采用了单个符号@ 以及回车换号作为控制语句起始符号,这又能提高开发效率。 2、可单独测试的模板。无需真正的控制层和模型层,Beetl的模板就可以单独开发和测试。 3、同时支持较为松散的MVC和严格的MVC,如果在模板语言里嵌入计算表达式,复杂条件表达式,以及函数调用有干涉业务逻辑嫌疑,你可以禁止使用这些语法。 4、强大的安全输出,通过安全输出符号!,能在模板变量,变量属性引用,for循环,占位符输出,try-catch中等各个地方提供安全输出,保证渲染正常。 5、模板变量:运行将模板的某一部分输出像js那样赋值个一个变量,稍后再处理。利用模板变量能完成非常复杂的页面布局(简单的布局可使用layout标签函数)。 6、类型推测,能在运行的时候推测模板变量类型,从而优化性能,也可以通过注解的方法显示的说明模板变量属性(这是非必须的,但有助于IDE自动提示功能)。 7、可插拔的设计,错误信息提示,模板引擎缓存机制,模板资源管理,本地调用的安全管理器,严格MVC限制,模板引擎本身都有默认的实现,但又完全可以自定义以适合特定需求。 8、增强的语法,如#ajax局部渲染,for-elsefor, select-case,安全输出符号! 等,这些语法特别适合模板开发。 9、性能超高,具有最快的模板解释引擎,同时,又有较低的CPU消耗。适合各类模板引用,如CMS系统,超高访问量的门户系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值