• Velocity Macro


     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作为一个同步的模板引擎的功能达到最大化!

  • 相关阅读:
    1058
    light oj 1067 费马小定理求逆元
    HDU 1022
    贪心
    HDU 4994 博弈。
    HDU 5234 背包。
    CodeForces 327B 水题。
    vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
    Object.assign的用法
    react + antd 实现打印功能(踩了不少坑)
  • 原文地址:https://www.cnblogs.com/sumbud/p/5777710.html
Copyright © 2020-2023  润新知