主要记录vm的配置及使用语法
 
一、与Struts2的的集成
 在pom.xml文件配置
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>1.7</version> 
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-tools</artifactId>
    <version>2.0</version>
</dependency>
 
二、定量显示变量
2.1#开头---控制符号
#set($变量名='xx')    定义变量
2.2$开头---显示符号
$变量名        显示变量
 
三、遍历数组(数组:$list,索引变量:$velocityCount)
#foreach($item in $list)
    $velocityCount.$item
#end
四、遍历HashTable
#foreach($key in $table.keySet())
    $key -> $table.get($key)
#end
五、判断是否为空
5.1判断单个对象$obj
#if($(obj))        #if(!$(obj))
    不为空              不为空
#else              #else
    为空                为空
#end               #end  
5.2判断集合$datalist,对象obj
#if($null.isNull($datalist.obj) || $datalist.obj.size()==0)
    集合空
#else
    #foreach($obj in $datalist.obj)
        #velocityCount:$obj.属性
    #end
#end
六、宏---定义一个宏相当于定义一个子函数
#macro(宏名称-renderdata  $参数-datalist)
    对datalist里的obj进行操作代码...
#end
#renderdata($datalist.obj)
七、数值、日期格式化
7.1数值
7.1.1数字
$number.format('0.00',$obj.amounts)
7.1.2货币格式
$number.format("currency", $agentBillDto.feeTotal) 
7.2日期
7.2.1获取当前年月日
$date.year 
$date.month 
$date.day
7.2.2设置年月日格式
$date.format('yyyy-MM-dd HH:mm:ss',$obj.createTime,$locale)
$date.format('MMM,dd',$obj.createTime,$convert.toLocale("en_US"))
7.3使用配置
在struts.xml加入
<constant name="struts.velocity.toolboxlocation" value="WEB-INF/classes/toolbox.xml" />
八、include、parse实现布局模块化
8.1语法  
#parse("template/xxx.vm")
#include("template/xxx.vm")
8.2区别
  include只导入文件,不解析vm语法
  parse导入文件,也会解析vm语法(定义变量、定义宏...)
8.3加载路径
  被包含的.vm文件放到/WEB-INF/classes目录下即可
  例子中xxx.vm放在/WEB-INF/classes/template下