- “#”用来标识Velocity的脚本语句
包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;
例如:
#set ($i=0)#foreach($info in $list)序号:$i#set($i=$i+1)#end
- 赋值
#set($food = "velocity") ##定义 变量food
Hello $food World! ## 输出 字符串,并将变量值带入。
- 注释
## 两个 # 代表单行注释
#* 这个是多行注释 *#
#** 文档格式 *#
- $与$!的区别
当找不到username的时候,$username返回字符串"$username",而$!username返回空字符串"" $username $!username
- 双引号 与 单引号
#set ($var="helo")
test"$var" 返回testhello
test'$var' 返回test'$var'
可以通过设置 stringliterals.interpolate=false改变默认处理方式
- 转义符号 单引号 ‘’
#set( $email = “foo” )
$email
'$email'
\$email
'\$email'
显示结果:
foo
$email
\foo
\$email
- if/else/elseif
#if($foo < 10 )
Go North
#elseif( $foo == 10 )
Go East
#elseif( $foo == 6 )
Go South
#else
Go West
#end
- 循环语句foreach
循环语句结构
#foreach($var in $arrays )
#end
例如:
#foreach( $product in $allProducts )
<li>$product</li>
#end
#foreach( $key in $allProducts.keySet() ) #假如 $allProducts 是hashMap
<li>Key: $key -> Value: $allProducts.get($key)</li>
#end
#foreach( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
#*
# Default name of the loop counter
# variable reference.
directive.foreach.counter.name = velocityCount
# Default starting value of the loop
# counter variable reference.
directive.foreach.counter.initial.value = 1
*#
如下定义了一段宏,用于输出表格中的列表
#macro( tablerows $color $somelist ) # $color $somelist 这两个是 宏 tablerows的参数
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end
使用宏
在模版中,只需要使用#tablerows($color $somelist)就可以取代里面的代码了:
#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )
#set( $color = "blue" )
<table>
#tablerows( $color $greatlakes )
</table>
- Range Operator
#foreach( $foo in [1..5] )
输出: $foo
#end
Velocity中使用”==”判断两个数字是否相等
现在我们假设$allProducts是一个Hashtable,如果你希望得到它的key应该像下面这样:
#foreach ( $key in $allProducts.keySet())
Key: $key -> Value:$allProducts.get($key)
