zoukankan      html  css  js  c++  java
  • 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作为一个同步的模板引擎的功能达到最大化!

  • 相关阅读:
    RTB交接
    awk命令详解
    Linux下的压缩解压缩命令详解
    inux下文件权限设置中的数字表示权限,比如777,677等,这个根据什么得来的
    jmeter接口测试教程
    kafka常用的操作命令
    hadoop常用的操作命令
    linux常用命令
    hive的常用命令
    用shell脚本写一个for循环
  • 原文地址:https://www.cnblogs.com/sumbud/p/5777710.html
Copyright © 2011-2022 走看看