velocity的macro

分页

##分页控制器 
    ##pageRedirctUrl:$pageRedirctUrl="itemLoveList.do?category=$!{category}&currPageIndex="
    ##pageCount 总页数
    ##currPageIndex 当前页
#macro(pager $pageRedirctUrl,$pageCount,$currPageIndex)
        #set($nextPage=$!currPageIndex+1)
        #if($!currPageIndex==$!pageCount)
            #set($nextPage=$!pageCount)
        #end
        #set($prePage=$!currPageIndex+(-1))
        #if($!currPageIndex==1)
            #set($prePage=1)
        #end
        #set($firstPage="#addUrlParam($pageRedirctUrl,'page', 1)")
        #set($secondPage="#addUrlParam($pageRedirctUrl,'page', 2)")
        #set($lastPage="#addUrlParam($pageRedirctUrl, 'page',$pageCount)")
        #set($prePage="#addUrlParam($pageRedirctUrl,'page', $prePage)")
        #set($nextPage="#addUrlParam($pageRedirctUrl,'page',$nextPage)")
        #set($endPage="#addUrlParam($pageRedirctUrl,'page', $pageCount)")
            
   #if($pageCount>1) 
    
#end
#end

计算页码

##计算页码   $totalNum总数   $pageNum每页的页数
#macro(calcuPage $totalNum,$pageNum)
    #if($!{totalNum} && $!{pageNum})
        #if($totalNum == 0)
            1
        #else
            #set($result = ($totalNum - 1) / $pageNum + 1)
            $result
        #end
    #else
        1
    #end
#end

拼凑url参数的宏

#macro(addUrlParam $url, $paramName, $paramValue)
  #if($!{url} && $!{paramName} && $!{paramValue})
    #set($separator = "&")
    #if($!{url.indexOf("?")} == -1)
      #set($separator = "?")
    #end
    $url$separator$paramName=$!{paramValue}
  #end
#end

分解url参数的宏

#macro(removeUrlParam $url, $paramName, $paramValue)
  #if($!{url} && $!{paramName} && $!{paramValue})
    #set($beReplace=$!{paramName}+"="+$!{paramValue})
    #set($url=$!{url.replace($!{beReplace},"")})
    #set($url = $url.replace("&&", "&"))
    #set($url = $!{url.replace("?&", "?")})
    #if($url.endsWith("?"))
      #set($url = $!{url.replace("?", "")})
    #end
    #set($url = $!{url.replaceAll(" ","")})
    #set($url = $!{url.replaceAl(" ","")})
    #if($!{url.endsWith("&")})
      #set($url = $!{url.substring(0,$!{url.lastIndexOf("&")})})
    #end
    $url
  #end
 #end

在URL中添加查询参数

#macro(addQueryParam $url,$paramValue)
  #if($!{url})
    #if($!{url.indexOf("?")}<0)
      $!{url}?q=$paramValue
    #else
      #set($qIndex=$!{url.indexOf("q=")})
      #if($!{qIndex}<0)
        $!{url}&q=$!{paramValue}
      #else
        #set($beforeStr = $!{url.substring(0,$!{qIndex})})
        #set($afterStr = $!{url.substring($!{qIndex}, $!{url.length()})})
        #set($index=$!{afterStr.indexOf("&")})
        #if ($!{index}<0)
          ${url},$!{paramValue}
        #else
          #set($beforeStr1=$!{afterStr.substring(0,$!{index})})
          #set($afterStr1 = $!{afterStr.substring($!{index}, $!{afterStr.length()})})
           $!{beforeStr}$!{beforeStr1},$!{paramValue}$!{afterStr1}
        #end
      #end
    #end
  #end
#end

删除URL中的查询参数

#macro(removeQueryParam $url,$paramValue)
  #if($!{url})
    #if($!{url.contains(",$!{paramValue}")})
      $!{url.replace(",$!{paramValue}", "")}
    #elseif($!{url.contains("$!{paramValue},")})
      $!{url.replace("$!{paramValue},", "")}
    #elseif($!{url.contains("q=$!{paramValue}")})
      #set($str=$!{url.replace("q=$!{paramValue}","")})
      #if($!{str.contains("?&")})
        #set($str=$!{str.replace("?&","?")})
      #elseif($!{str.contains("&&")})
        #set($str=$!{str.replace("&&","&")})
      #elseif($!{str.endsWith("?")})
        #set($str = $!{str.substring(0,$!{str.lastIndexOf("?")})})
      #elseif($!{str.endsWith("&")})
        #set($str = $!{str.substring(0,$!{str.lastIndexOf("&")})})
      #end
      $!{str}
    #end
  #end
#end

初始化URL

#macro(initUrl $url)
  #if($!{url})
    #if($!{url.endsWith("?")})
      #set($url = $!{url.replace("?", "")})
    #end
    #set($url = $!{url.replace("?&", "?")})
      $url
  #end
#end

将数字格式化

#macro(discountFormat $discount)
  $number.format('#0.0',$discount)
#end

double类型小数点控制到后两位

#macro(numFormat $num)
  $number.format('#0.00',$num)
#end

文本长度控制,由于是字符串

##文本长度控制,由于是字符串
    ##str 需要长度控制的字符串
    ##maxLength 截取的最大长度
    ##subfix 后缀
#macro(previewText $str,$maxLength,$subfix)
    #if(!$!{str}||!$!{maxLength}||!$!{subfix})
        ##是空则不执行
    #else
        #if(${str.length()}>${maxLength})
            $!{str.substring(0,${maxLength})}$!{subfix}
        #else
            $!{str}
        #end
    #end
#end

格式化时间戳

#macro(formatTime $timestamp)
  $timestamp.toString().substring(0,19)
#end

将地区代码转换成对应的中文

##将地区代码转换成对应的中文
#macro(transAreaCode $areaCode)
    #if($!{areaCode})
    #if($areaCode == "340000")
        安徽
    #elseif($areaCode == "110000")
        北京
    #elseif($areaCode == "350000")
        福建
    #elseif($areaCode == "620000")
        甘肃
    #elseif($areaCode == "440000")
        广东
    #elseif($areaCode == "450000")
        广西
    #elseif($areaCode == "520000")
        贵州
    #elseif($areaCode == "460000")
        海南
    #elseif($areaCode == "130000")
        河北
    #elseif($areaCode == "410000")
        河南
    #elseif($areaCode == "230000")
        黑龙江
    #elseif($areaCode == "420000")
        湖北
    #elseif($areaCode == "430000")
        湖南
    #elseif($areaCode == "220000")
        吉林
    #elseif($areaCode == "320000")
        江苏
    #elseif($areaCode == "360000")
        江西
    #elseif($areaCode == "210000")
        辽宁
    #elseif($areaCode == "150000")
        内蒙古
    #elseif($areaCode == "640000")
        宁夏
    #elseif($areaCode == "630000")
        青海
    #elseif($areaCode == "370000")
        山东
    #elseif($areaCode == "140000")
        山西
    #elseif($areaCode == "610000")
        陕西
    #elseif($areaCode == "310000")
        上海
    #elseif($areaCode == "510000")
        四川
    #elseif($areaCode == "120000")
        天津
    #elseif($areaCode == "540000")
        西藏
    #elseif($areaCode == "650000")
        新疆
    #elseif($areaCode == "530000")
        云南
    #elseif($areaCode == "330000")
        浙江
    #elseif($areaCode == "500000")
        重庆
    #end
    #end
#end

计算分润

## $totalAmount
## $userRate
## $superiorRate 

#macro(calcuBenefit $totalAmount,$userRate,$superiorRate)
  #set($allBenefit = $math.mul($!{totalAmount},$!{userRate}))
  #set($superiorBenefit = $math.mul($!{totalAmount},$!{superiorRate}))
  $number.format("#0.00",$math.sub($allBenefit,$superiorBenefit))
#end

你可能感兴趣的:(velocity的macro)