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) 
    <div class="dataTables_paginate paging_bootstrap pagination">
    <ul>
    #if($currPageIndex != 1)
        <li class="prev "><a href="$prePage">上一页</a></li>
    #else
        <li class="prev disabled"><a href="#">上一页</a></li>
    #end
    #if($pageCount >=9)
        #if($!{currPageIndex} !=1)
            <li><a href="$!{firstPage}">1</a></li>
        #else
            <li class="active"><a href="#">1</a></li>
        #end
        #if($!{currPageIndex} !=2)
            <li><a href="$!{secondPage}">2</a></li>
        #else
            <li class="active"><a href="#">2</a></li>
        #end
    #end
    
    #if(${currPageIndex} > $!{pageCount})
        #set(${currPageIndex} = $!{pageCount})
    #end
    
    #if($!{currPageIndex}>0)
        #if($!{pageCount} <=8)
            #set($pageStart =1)
                #set($pageEnd = $!{pageCount} - 1)
        #else
            #if($!{pageCount} - $!{currPageIndex}<=3)
                <li><a href="#">...</a></li>
            #set($pageStart =$currPageIndex - 2)
                #set($pageEnd = $!{pageCount} - 1)
            #else
                #if($!{currPageIndex}>=10)
                    <li><a href="#">...</a></li>
                    #set($pageStart =$currPageIndex - 3)
                    #set($pageEnd =$currPageIndex + 2)
                 #if(${pageEnd} > $!{pageCount})
                    #set(${pageEnd} = $!{pageCount})
                 #end
                    #set($afterApo = 1)
                #else   
                 #set($pageStart =3)
                    #set($pageEnd =$!{currPageIndex}+2)
                    #set($afterApo = 1)
                #end
            #end
        #end         
        #foreach($id in [${pageStart}..${pageEnd}])
            #if($!id==$!currPageIndex)
            <li class="active"><a href="#">$!{id}</a></li>
            #else
            <li><a href="#addUrlParam($pageRedirctUrl,'page',$!{id})">$!{id}</a></li>
            #end
        #end
     #end
  
     #if($!{pageCount}>1)
        #if($afterApo)
          <li><a href="#">...</a></li>
        #end
        #if($!pageCount!=$!currPageIndex)
          <li><a href="$!{endPage}">$!{pageCount}</a></li>
          <li class="next"><a href="$!{nextPage}">下一页 → </a></li>
        #else
          <li><a href="#">$!{currPageIndex}</a></li>
        #end
     #end   
        </ul>
    </div>
#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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容