velocity的macro

分頁(yè)

##分頁(yè)控制器 
    ##pageRedirctUrl:$pageRedirctUrl="itemLoveList.do?category=$!{category}&currPageIndex="
    ##pageCount 總頁(yè)數(shù)
    ##currPageIndex 當(dāng)前頁(yè)
#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">上一頁(yè)</a></li>
    #else
        <li class="prev disabled"><a href="#">上一頁(yè)</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}">下一頁(yè) → </a></li>
        #else
          <li><a href="#">$!{currPageIndex}</a></li>
        #end
     #end   
        </ul>
    </div>
#end
#end

計(jì)算頁(yè)碼

##計(jì)算頁(yè)碼   $totalNum總數(shù)   $pageNum每頁(yè)的頁(yè)數(shù)
#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參數(shù)的宏

#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參數(shù)的宏

#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中添加查詢(xún)參數(shù)

#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中的查詢(xún)參數(shù)

#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

將數(shù)字格式化

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

double類(lèi)型小數(shù)點(diǎn)控制到后兩位

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

文本長(zhǎng)度控制,由于是字符串

##文本長(zhǎng)度控制,由于是字符串
    ##str 需要長(zhǎng)度控制的字符串
    ##maxLength 截取的最大長(zhǎng)度
    ##subfix 后綴
#macro(previewText $str,$maxLength,$subfix)
    #if(!$!{str}||!$!{maxLength}||!$!{subfix})
        ##是空則不執(zhí)行
    #else
        #if(${str.length()}>${maxLength})
            $!{str.substring(0,${maxLength})}$!{subfix}
        #else
            $!{str}
        #end
    #end
#end

格式化時(shí)間戳

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

將地區(qū)代碼轉(zhuǎn)換成對(duì)應(yīng)的中文

##將地區(qū)代碼轉(zhuǎn)換成對(duì)應(yīng)的中文
#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")
        內(nèi)蒙古
    #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

計(jì)算分潤(rùn)

## $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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末候衍,一起剝皮案震驚了整個(gè)濱河市撮抓,隨后出現(xiàn)的幾起案子堪旧,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡囊卜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)错沃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)栅组,“玉大人,你說(shuō)我怎么就攤上這事枢析∮竦В” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵醒叁,是天一觀的道長(zhǎng)司浪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)把沼,這世上最難降的妖魔是什么啊易? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮饮睬,結(jié)果婚禮上租谈,老公的妹妹穿的比我還像新娘。我一直安慰自己续捂,他們只是感情好垦垂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著牙瓢,像睡著了一般劫拗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矾克,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天页慷,我揣著相機(jī)與錄音,去河邊找鬼胁附。 笑死酒繁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的控妻。 我是一名探鬼主播州袒,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弓候!你這毒婦竟也來(lái)了郎哭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤菇存,失蹤者是張志新(化名)和其女友劉穎夸研,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體依鸥,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亥至,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贱迟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐扮。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖关筒,靈堂內(nèi)的尸體忽然破棺而出溶握,到底是詐尸還是另有隱情,我是刑警寧澤蒸播,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布睡榆,位于F島的核電站,受9級(jí)特大地震影響袍榆,放射性物質(zhì)發(fā)生泄漏胀屿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一包雀、第九天 我趴在偏房一處隱蔽的房頂上張望宿崭。 院中可真熱鬧,春花似錦才写、人聲如沸葡兑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讹堤。三九已至吆鹤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洲守,已是汗流浹背疑务。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梗醇,地道東北人知允。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像叙谨,于是被迫代替她去往敵國(guó)和親温鸽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容