Velociy 1.6的新特性,记录一下

Velociy 1.6,其中新增了一些非常有用的指令和功能,并修复了一些bug,用起来的确方便多了。
ADD:表示是新增的功能

TYPE    CHANGE eg.
ADD 增加#define指令 定义可以引用的VTL渲染块 #define( $foo )Hello, $bar!#end
#set( $bar = 'world')
$foo 输出: Hello, world!
ADD 增加可以跳出#foreach循环的#break指令 #foreac($a in $list)
  #if($a==1)
     #break
  #end
#end
ADD 增加#foreach指令中使用的VTL语法变量 $velocityHasNext判断是否还有下一个元素 #foreach( $customer in $customerList )

    $customer.Name #if( $velocityHasNext ), #end

#end

配置:

directive.foreach.counter.name = velocityCount

directive.foreach.iterator.name = velocityHasNext
ADD 允许模板中使用数组时当做List来使用,意味着可以使用list的方法 $myarray.isEmpty()

$myarray.size()

$myarray.get(2)

$myarray.set(1, 'test')
ADD 支持模板上调用变参数方法 对于public void setPlanets(String... planets)
或者 public void setPlanets(String[] planets)
模板上可以这样调用:
$sun.setPlanets('Earth', 'Mars', 'Neptune')

$sun.setPlanets('Mercury')

$sun.setPlanets()
ADD 增加严格引用检查设置,必须在#set或者context中设置的变量才能使用,否则会抛出exception(可配置开启关闭) 如果$foo不存在,并且严格引用检查开启

$foo                         ## Exception

#set($bar = $foo)            ## Exception

#if($foo == $bar)#end        ## Exception

#foreach($item in $foo)#end  ## Exception
ADD 增加模板上定义map #set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"}) ## Map

使用:

    $monkey.Map.get("banana")

或  $monkey.Map.banana
ADD 增加#literal指令来指定大块的不需要进行渲染的内容(类似于\(escaping)的多行版本用法) 模板中:

#literal()

#foreach ($woogie in $boogie)

  nothing will happen to $woogie

#end

则输出:

#foreach ($woogie in $boogie)

  nothing will happen to $woogie

#end







#end
ADD 增加#evaluate指令在模板渲染时动态执行字符串(类似于JS中的eval()方法) #set($source1 = "abc")

#set($select = "1")

#set($dynamicsource = "$source$select")

## $dynamicsource is now the string '$source1'

#evaluate($dynamicsource)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值