Velocity(7)——velocity進階用法
阿新 • • 發佈:2017-11-04
事情 bgcolor substring elseif ron caption -s 截取 如同
1.截取部分字段substring
1 原始字符串:$!ag.tagValue,也許很長,前端頁面展示時需要截取字符串。
2 #set($str=$!ag.tagValue)
3
4 #if($str.length()>30)
5 #set($str=$str.substring(0,30))
6 $str ...
7 #else
8 $!ag.tagValue
9 #end
使用substring(begin,end)要註意,結束位置為:end索引-1
2.分割成數組split
1 #if($!{result.creType} && $result.creType)
2 #foreach ($element in $result.creType.split(","))
3 #if($element == 1)
4 <script>document.getElementsByName("cretype")[0].checked="checked";</script>
5 #elseif($element == 2)
6 <script>document.getElementsByName("cretype")[1].checked="checked";</script>
7 #else
8 <script>document.getElementsByName("cretype")[2].checked="checked";</script>
9 #end
10 #end
11 #end
3.說到split成數組,就要看數組的幾個可以用的方法
velocity 中的數組對應 Java 中的 List 對象。對於 Java 原生 Array 對象, 只能夠 #foreach 進行遍歷,無法使用 $arr[0] 和 $arr.get(0) 方法。
4.所以學java從不用數組,而用list
--事實上,list很方便,但list比數組效率低很多倍
- $myarray.isEmpty()list是否為空
- $myarray.size()獲取list元素個數
- $myarray.get(2)獲取list指定下標的元素
- $myarray.add()增加元素
5.計數用$velocityCount
在foreach中velocityCount表示循環的次數,從1開始,代表第一個循環。
6.空null和空字符串""的判斷
在velocity中,非null被認為是真的,所以,判斷null可以用
1 #if($!變量名)
2 ……
3 #else
4 ……
5 #end
或者既可以判斷null也可以判斷空字符串
1 #if("$!varName" != "")
2 不為null 或 ""
3 #else
4 ……
5 #end
7.基本語法錯誤#end不要忘
最開始的時候經常#if就完了報錯,後來都是寫完if就end,最後寫中間。
8.宏#macro其實也很簡單
原來感覺不懂不敢碰,自從寫了個velocity分頁後就忽然覺得宏不要太好用。事情是這樣的,當時地區三級聯動需要多處調用,提取出成公共模塊,用#parse導入後出現沖突,因為一個頁面用兩次地區聯動代碼,id就重復了。於是想把id給變成參數,當我需要這個公用代碼的時候,把id當參數傳進去,最後render的結果就是html代碼的id為我的參數。這樣看來,宏就是一個函數。
想要用宏,先寫好,然後parse,然後調用。
一個簡單的宏函數:
1 #macro( d )
2 <tr><td></td></tr>
3 #end
使用它:如果在本頁面,直接#d,如果是單獨寫了一個模板文件,那麽需要先#parse(文件路徑),再#d,如同js外部引用。
傳參數的宏:
1 #macro( tablerows $color $somelist )
2 #foreach( $something in $somelist )
3 <tr><td bgcolor=$color>$something</td></tr>
4 #end
5 #end
Velocity(7)——velocity進階用法