volocity脚本语法

本文介绍了Velocity脚本的常用语法,如#if逻辑判断、#else、#foreach循环、#break跳出循环、#include和#parse模板引入,以及#macro自定义方法和#set定义变量。在逻辑判断中,支持多种运算符。在处理null值时,使用$!num避免直接输出变量名。

volocity脚本语句都是以#打头,包括#if、#else、#end、#foreach、#break、#include、#parse、#macro、#set等。

1#if逻辑判断

支持的运算符有==、!= 、>、<、>=、<=、&&、||、!。

#if(1==1) ... #end
#if(1!=1) ... #end
#if(1<2)  ... #end
#if(1>0)  ... #end
#if(1<2)  ... #end
#if(1>=0) ... #end
#if(1<=2) ... #end
#if(1>0 && 2>1) ... #end
#if(1>0 || 2>1)  ...#end
#if(1>0)  ... #end
#if(!(1==2))  ... #end
#if(true)  ... #end
#if(!false)  ... #end

变量形式:

#if($num> 0)  ... #end

2#else逻辑判断

#if($num> 0)
   ...
#else
   ...
#end

3#foreach循环迭代

#foreach($datain $list)
 #if($data>0)
   $data
 #else
   $data
 #end
#end
      
#foreach($datain [1,2,3,4,5])
  $data
#end
  
#foreach($data in ['a','b','c'])
  $data, $velocityCount //velocityCount代表的是序号,是固定写法
#end
 
#foreach($data in $map)
 $data //输出的是map的value值
#end
 
#foreach($data in{"num1":1,"num2":2,"num3":3})
 $data //输出的是value值
#end
      
#foreach($datain $map.entrySet())
 $data.key=$data.value
#end
      
#foreach($data in [1..10]) //循环10次
 $data
#end

4#break跳出循环

#foreach($data in $list)
  #if($data == 2)
   #break
  #end
  $data
#end

5#include静态引入模板

 volocity1.vm:

 world!

volocity2.vm:
<body>
Hello #include("volocity1.vm")

</body>

注:被引入的模板不支持变量替换。 

6#parse动态引入模板

volocity1.vm:
 $str world!

volocity2.vm:
<body>
 #parse("volocity1.vm")
</body>

 注:被引入的模板支持变量替换。   

7#macro自定义方法

定义无返回值方法:
#macro(methodName,$list)
 #foreach($datain $list)
  $data
 #end
#end
调用方法:#methodName($list)
      
定义有返回值方法:
#macro(methodName,$list)
 #set(sum=0)
 #foreach($data in $list)
  #set($sum=$sum+$data)
 #end
 $sum
#end
调用方法:#methodName($list)
        
其实返回值只是我们给加的一个说法而已,严格的说是没有返回值概念的,只有输出这一说(就相对于java中的System.out.print输出);要理解模板语言是干什么的,只是一个生产工具而已。

8#set定义变量

#set($num=0)$num
#set($num=$num+1) $num
#set($num=$num*2) $num
#set($num=$num/2) $num
#set($num=$num-1) $num
#set($list = [1,2,3,4,5]) $list.get(0)
#set($map={"num1":1,"num2":2})$map.get("num2")

9null值输出

假设vm模板有如下输出: $num

如果volocity上下文传递过来的该参数为null,那么最后引擎输出来就直接是$num,这肯定不是我们想要的处理方式;那么我们使用$!num这种方式来输出就没问题了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值