一,Velocity 中的宏我们可以理解为函数。
①宏的定义
#macro(宏的名称$参数1 $参数2 …)
语句体(即函数体)
#end
②宏的调用
#宏的名称($参数1 $参数2 …)
说明:参数之间用空格隔开。
如:
#set($pageNum = 15)
#macro(velocityMacro $para1 $para2 )
$pageNum= $para1+$para2
#end
二,javascript函数:
例如
<script type="text/javascript">
function getToPage(param)
{
alert(param)
}
</script>
写在<head></head>之间。
调用,如<a href="getToPage(2)">test</a>
三,混合调用:
<a href="javascript:getToPage($!{category.id})">test</a>
注意:velocity的宏与javascript的函数是有区别的:
<a href="$pageNum" onmouseover="#velocityMacro($pageNum -1)">hello</a>
<a href="$pageNum" onmouseover="#velocityMacro($pageNum 1)">world</a>
运行发现,不论如何提示
hello上提示15, world 提示14
<a #velocityMacro($pageNum -1) href="$pageNum" >hello1</a>
则此时hello1显示14
以上现象说明#velocityMacro的执行顺序与它放的位置有关,且只要写了就会执行,即使没有触发事件(onmouseover等)。
一个小例子如下:
#if($!pager.currentPage<$!pager.totalPages)
<a href="javascript:page($!{pager.currentPage}+1);">下页</a>
<a href="javascript:page(${pager.totalPages});">尾页</a>
#else
下页
尾页
#end