码迷,mamicode.com
首页 > 系统相关 > 详细

Velocity(5)——#macro 指令

时间:2017-11-01 21:42:24      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:else   最大化   format   pre   sel   foreach   一个   col   rod   

 1 #macro(formatIncreaseData $increase)
 2     #if(${product.onlineStatusFlag} ==‘0‘)
 3         --
 4     #elseif(!$increase || $increase=="")
 5         --
 6     #else
 7         #if($increase >= 0)
 8             #set($color = "increase-number")
 9         #elseif($increase < 0)
10             #set($color = "is-decrease")
11         #end
12         <span class="$!{color}">${NumberUtils.percentageFormat($!{increase})}</span>
13     #end
14 #end
 1 #macro(renderTheme $themeList)
 2     #if($themeList.size()>0)
 3         #foreach($renqi in $themeList)
 4             #set($themeSelected="")
 5             #set($closeIcon = "")
 6             #if($!{fundGroupId} == $renqi.id)
 7                 #set($themeSelected="cur")
 8                 #set($closeIcon = "<span class=‘closeIcon‘></span>")
 9             #end
10         <li><a class="theme-name $!{themeSelected}" data-sk="All-reMen" title="$!{renqi.memo}" href=" " data-identity="fundGroupId" data-val="$!{renqi.id}"><span  class="">$!{renqi.groupName}</span>
11             $!{closeIcon}
12         </a >
13         </li>
14         #end
15     #end

Velocity中的宏可以理解为函数的定义,在使用的时候,需要考虑到宏的作用域的问题。

1、外层的宏中的变量在内存的宏中可以访问

2、内层中的宏变量如果与外层的变量名冲突,如果有传值则取传入的值,如果没有传值,则取上层的宏中的值!

以上的例子中定义了名为:

formatIncreaseData 和 renderTheme 的函数

调用方式为:
1 #renderTheme($fundGroup.renqiList)
2 #renderTheme($fundGroup.zhutiList)

所以,velocity的宏使Velocity作为一个同步的模板引擎的功能达到最大化!

Velocity(5)——#macro 指令

标签:else   最大化   format   pre   sel   foreach   一个   col   rod   

原文地址:http://www.cnblogs.com/NiceCui/p/7768385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!