volocity脚本语法
Posted 小立攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了volocity脚本语法相关的知识,希望对你有一定的参考价值。
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")
9、null值输出
假设vm模板有如下输出: $num
如果volocity上下文传递过来的该参数为null,那么最后引擎输出来就直接是$num,这肯定不是我们想要的处理方式;那么我们使用$!num这种方式来输出就没问题了。
以上是关于volocity脚本语法的主要内容,如果未能解决你的问题,请参考以下文章