Velocity学习总结

(1)if和foreach的用法:
#if($errors.exist())
        <ul>
         <span class="error">
         #foreach ($e in $errors.all )
             $e
         #end
 </span>
        </ul>
#end
<!-- if和foreach的用法 -->
#if($message || $errors.exist())
    <div id="tip" class="fade">
     <ul><li><span class="pass">$!{message}</span></li></ul>
     #if($errors.exist())
        <ul>
         <span class="error">
         #foreach ($e in $errors.all )
             $e
         #end
 </span>
        </ul>
 #end
    </div>
#end

(2)set的用法:
#set( $this = "Velocity")
    $this is great!
#end
页面输出Velocity is great!

(3)<!-- 条件判断 -->
#set( $condition = true)

#if ($condition)
    The condition is true!
#else
    The condition is false!
#end

<!-- 条件语句 -->
#if(condition)
#elseif(condition)
#else
#end

(4)<!-- 循环语句 -->
#foreach ($element in $list)
     This is $element.
     $velocityCount  [Page]
#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.

(5)<!-- 变量的写法 -->
${name}=/"hello/"
变量的定义:
#set($name = /"hello/")      说明:velocity中变量是弱类型的。

(6)<!-- Velocity中的内置对象 -->
Velocity内置了一些对象,在vm模版里可以直接调用,列举如下:
$request、$response、$session,另外,模板内还可以使用 $msg内的消息工具访问 Struts 的国际化资源,达到简便实现国际化的方法。

(7)<!-- 数组访问  -->
对数组的访问在Velocity中存在问题,因为Velocity只能访问对象的方法,而数组又是一个特殊的Array,所以虽然数组可以进行循环列举,但却不能定位访问特定位置的元素,如 strs[2],数组对固定位置元素的访问调用了Array的反射方法get(Object array, int index),而Velocity没能提供这样的访问,所以数组要么改成List等其他类容器的方式来包装,要么就通过公用Util类的方式来提供,传入数组对象和要访问的位置参数,从而达到返回所需值的目的。

(8)<!--  语句的嵌套 -->
#foreach ($element in $list) 
       ## inner foreach 内循环 
       #foreach ($element in $list) 
       This is $element. $velocityCount <br>inner<br>
       #end 
       ## inner foreach 内循环结束

    ## outer foreach 
    This is $element. 
    $velocityCount <br>outer<br>
    #end
(9)<!-- 注释 -->
1单行注释:
  ## This is a single line comment.
2多行注释:
  #*
   Thus begins a multi-line comment. Online visitors won’t
   see this text because the Velocity Templating Engine will
   ignore it.
  *#
3文档格式:
  #**
   This is a VTL comment block and
   may be used to store such information
  as the document author and versioning
   information:
   @version 1.1
   @author  xiao
   *#
(10)<!-- 关系和逻辑操作符 -->
Velocity 也具有逻辑AND, OR 和 NOT 操作符。 

## example for AND
#if($foo && $bar)
   <strong> This AND that</strong>
#end
例子中#if() 指令仅在$foo 和$bar 斗为真的时候才为真。如果$foo 为假,则表达式也为假;并且 $bar 将不被求值。如果 $foo 为真,Velocity 模板引擎将继续检查$bar的值,如果 $bar 为真,则整个表达式为真。并且输出This AND that 。如果 $bar 为假,将没有输出因为整个表达式为假。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值