Velocity macro宏指令详解


Java Velocity中macro宏指令用于定义一个VTL模板的重复代码块脚本函数(宏),不推荐在界面模板中大量使用。

定义

#macro(宏的名称  $参数1  $参数2 .....)  
       语句体(即函数体)  
#end

宏的调用

#宏的名称 ($参数1  $参数2 .....)

带参数的宏

#macro( tablerows $color $somelist )  #foreach( $something in $somelist )  <tr><td bgcolor=$color>$something</td></tr>  #end
#end

定义宏velocity macros

相当于函数 支持包含功能

#macro( d )
<tr><td></td></tr>
#end

调用

#d()

例子

函数(宏)定义,一般放在最前面

#macro(orderPic $type)
 #if ($orderField.equals($type))
 <img src="http://www.codingdict.com/ico/${orderType}.gif" />
 #end
#end

macro宏调用

#orderPic("myfav")