Velocity(5)——#macro 指令
阿新 • • 發佈:2017-11-01
foreach pro 調用 product utils -- -s 引擎 con
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 指令