velocity 的⽤法,包括截取字符,循环遍历,计算,判空⽬录
velocity模板其实就是java不分语法的翻译,⽤到的属性还是java的⽅法,get,set,等
1.截取部分字段
substring
使⽤substring(begin,end)要注意,结束位置为:end索引-1
2.分割成数组
split
3.说到split 成数组,就要看数组的⼏个可以⽤的⽅法
velocity 中的数组对应 Java 中的 List 对象。对于 Java 原⽣ Array 对象, 只能够 #foreach 进⾏遍历,⽆法使⽤ arr[0]和arr[0]和(0) ⽅法。
4.所以学java 从不⽤数组,⽽⽤list --事实上,list很⽅便,但list⽐数组效率低很多倍
$myarray.isEmpty()list是否为空
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
1 #if($!{Type} && $Type)
2 #foreach ($element in $Type.split(","))
3 #if($element == 1)
4 <script&ElementsByName("cretype")[0].checked="checked";</script>
5 #elseif($element == 2)
6 <script&ElementsByName("cretype")[1].checked="checked";</script>
7 #else
8 <script&ElementsByName("cretype")[2].checked="checked";</script>
9 #end
10 #end
11 #end
$myarray.size()获取list元素个数
$(2)获取list指定下标的元素
$myarray.add()增加元素
5.计数⽤$velocityCount
在foreach中velocityCount表⽰循环的次数,从1开始,代表第⼀个循环。
6.空null和空字符串""的判断
在velocity中,⾮null被认为是真的,所以,判断null可以⽤
1 #if($!变量名)
2 ……
3 #else
4 ……
5 #end
或者既可以判断null也可以判断空字符串
java中split的用法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
⼀个综合使⽤,。
9引⽤外部⽂件#include和#parse
我开始经常⽤#include,后来发现刷新页⾯没变化,⽤#parse就好了。字⾯理解,⼀个是直接拿过来,⼀个是解析后。所以,如果是传html代码,可以直接include;若是包含velocity代码的要编译#parse.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论