NVelocity的宏使用

一、NVelocity使用参数
 示例:
  1.建立宏
   #macro( test $range $arrayList )
    ...
   #end
  2.调用宏
  #test([-9,-1] ["favorite", "color"])
 通过以上示例,你只需要一个为每一个需要传递的参数提供了名称的#macro指令,这些参数用空格进行分隔。如上例中#macro( test $range $arrayList )“test”是宏名,$range $arrayList是参数。用"#"+宏名(参数1 参数2...)来调用宏。
  
  
二、NVelocity递归调用

 嵌套,最简单的情况就是在NVelocity 中用到macro里调用另外一个macro,这是在实际代码开发中使用得最频繁的一种。递归,是一种特殊类型的嵌套,它是在NVelocity中的macro里调用自身,但这种情况并不太常见。
 
 #macro( recurs $depth )
  进入第 $depth 层<br/>

  #set( $depth = $depth - 1 )

  #if ( $depth > 0 )

   #recurs( $depth )

  #end

  #set( $depth = $depth + 1 )

  进入第 $depth 层<br/>

 #end
 #recurs( 3 )
 
 执行结果:
   进入第 3 层
   进入第 2 层
   进入第 1 层
   进入第 1 层
   进入第 2 层
   进入第 3 层
 注:在递归调用时,注意通常不要把一个对象的属性传为参数递归调用,上例中,如果$depth是一个对象的话,那么用#recurs( $depth.attribute)话,模板输出时候往往有问题,而且又查不出来,这里记录一下,忘以后不要出现这样的错误。究其原因,我想是由于是object类型,往往在调用时认不出对象的类型吧(暂时只能这样去理解了,没深层次去研究过)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值