文档详情

velocity新手教程.doc

发布:2017-08-08约4.97千字共6页下载文档
文本预览下载声明
Velocity教程 一、Velocity脚本语法摘要???? 变量 (1)变量的定义: #set($name = hello) 说明:velocity中变量是弱类型的。 当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示: #set($directoryRoot = www ) #set($templateName = index.vm ) #set($template = $directoryRoot/$templateName ) $template 输出将会是:www/index.vm 注:在velocity中使用$2.5这样的货币标识是没有问题得的,因为velocity中的变量总是以一个大写或者小写的字母开始的。 (2)变量规范的写法 ${name} ,也可以写成:$name。提倡用前面的写法。 例如:你希望通过一个变量$vice来动态的组织一个字符串。 ?Jack?is?a?$vicemaniac. 本来变量是$vice现在却变成了$vicemaniac,这样Veloctiy就不知道您到底要什么了。所以,应该使用规范的格式书写?:?Jack?is?a?${vice}maniac 现在Velocity知道变量是$vice而不是$vicemaniac。 注意:当引用属性的时候不能加{} (3)变量的赋值: $name=hello 赋值的左边必须是一个变量或者是属性引用。右边可以是下面六种类型之一: 变量引用,字面字符串,属性引用,方法引用,字面数字,数组列表。 下面的例子演示了上述的每种类型: #set( $monkey = $bill ) ## variable reference #set( $monkey.Friend = monica ) ## string #set( $monkey.Blame = $whitehouse.Leak ) ## property reference #set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference #set( $monkey.Number = 123 ) ##number #set( $monkey.Say = [Not, $my, fault] ) ## ArrayList 注意:①如果上述例子中的右值是null, 则左值不会被赋值,也就是说会保留以前的值。 ②velocity模板中未被定义的变量将被认为是一个字符串。例如: #set($foo?=?gibbous)? $moon?=?$foo 输出结果为: $moon?=?gibbous ③velocity模板中不会将reference解释为对象的实例变量。例如:$foo.Name将被解释为Foo对象的getName()方法,而不是Foo对象的Name实例变量。例如: $foo.getBar() 等同于$foo.Bar ; $data.getUser(jon) 等同于$data.User(jon) ; data.getRequest().getServerName() 等同于 $data.Request.ServerName等同于${data.Request.ServerName} ? 2.???? 循环 #foreach?($element?in?$list) ?????This?is?$element. ???? $velocityCount? #end #foreach($element in $list) This is $element $velocityCount #end 例子: #set( $list = [pine, oak, maple]) #foreach?($element?in?$list) $velocityCount This?is?$element.br #end 输出的结果为: 1 This is pine. 2 This is oak. 3 This is maple. 每次循环$list中的一个值都会赋给$element变量。 $list可以是一个Vector、Hashtable或者Array。分配给$element的值是一个java对象,并且可以通过变量被引用。例如:如果$element t是一个java的Product类,并且这个产品的名字可以通过调用他的getName()方法得到。 #foreach ( $key in $list.keySet()) Key: $key - Value: $list.get($key) br #end 提示:velocity中大小写敏感。 ?
显示全部
相似文档