velocity语法小结

1.变量定义
  因为是一种弱类型语言,所以不用定义变量的类型,编译器根据赋值的类型自动进行判断,定义的关键字为set,set前要 加#,变量名前必须加$,变量名和值的组合要放在小括号中,不必用分号结束语句。例如:
  #set($maxValue=5)
  #set($name="Bob")
  也 可以定义数组,形式如下:
  #set($arrayName=["element1","element2",...])
  例 如:#set($members=["mary","rose","Mr Black"])   
 2.注释
  对单行注 释,形式如下:
  #set($name="mike") ##这是一个注释:定义名字为mike
  对多行注释,形式如下:
  #set($name="mike")
  #*
  这 是一个多行注释:定义名字为mike,
  如果定义为其他的,不符合用户习惯!
  *#
  
  
 3.流程控制
  支 持的流程控制有:#if...#else...#end(逻辑判断语句)和#foreach(... in ...)...#end(循环语句),可以嵌套使用。例如:if的例子
        #set($name="mary")
        #set($sex="female")
        #set($age=20)
        #set($coutry="America")
  
         #if($name=="mary")
           hello mary!
   
         #end
  
         #if($sex=="male")
           You are a boy!
   
         #else
           You are a girl!
   
         #end
  
         #if($age<12)
           You are too young!
   
         #elseif($age>12 && $age<18)
           You are not an adult!
   
         #else
           You are an adult!
   
         #end
  
         #if($country!="China")
           #if($country=="Amemica")
             You are from America!
   
         #end
         #else
           #if($city=="Beijing")
             You are from Beijing!
   
           #else
             You are not from Beijing!
   
           #end
         #end
             
   
  例如:foreach的例子
        #set($members=["mary","rose","mike"])
        #foreach($member in $members)
          $member
        #end
             
   
  另 外,foreach循环不仅可以显示数组内容,也可以显示java的Vector、List、Iterator等对象的内容,
    
  
   4.#foreach() #end用于循环输出 及退出
   
    #foreach( $key in $allProducts.keySet() )
     <li>Key: $key -> Value: $allProducts.get($key)</li>

     #if($votecityCount>5)#break#end
    #end


   
  5. #include,用于包括一些资源文件,当然include是不会去解析资源文件
     #include( "one.txt" )
 
     #parse,用于解析并且包括相应的资源文件
     #parse( "me.vm" ),和主文件共享相应的Context
   
     #stop,用于停止执行解析,并返回,主要用于调试功能。
   
   
   6.velocity的#macro功能挺强大.
    #macro,类似于宏定义,用于自定义相应的标记。
    如下定义了一段宏,用于输出表格中的列表
    #macro( tablerows $color $somelist )
     #foreach( $something in $somelist )
         <tr><td bgcolor=$color>$something</td></tr>
     #end
    #end
   
    在模版中,只需要使用#tablerows($color $somelist)就可以取代里面的代码了:
    #set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )
    #set( $color = "blue" )
   <table>
      #tablerows( $color $greatlakes )
   </table>
  
    #macro 支持内嵌语法,所以对于模版的定义,就变得更加的灵活而简单了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值