1.什么是velocity
velocity是一种基于java的模版引擎(template engine)
VTL提供一种简单、容易的方法将动态内容合并到web页面。
2.基本语法
2.1注释
- 单行注释,如
## This is a comment
- 多行注释,如
#*
This is a multiline comment.
hahaha
*#
2.2 变量
- 定义变量,如
$username or ${username} or $!username
- 访问变量属性
## 调用user对象的getAddress()方法
$user.Address or ${user.Address}
- 命令调用
$user.getAddress() or ${user.getAddress()}
2.3 #set 指令
#set($monkey=$bill)
#set($monkey.Friend='Lucy')
#set($monkey.Name=$bill.Name)
#set($monkey.Name=$bill.getName())
#set($monkey.Number=123)
#set($monkey.Number=123)
#set($monkey.Numbers=[1..3])
#set($monkey.Say=["Hello!",$good,"Money"])
2.4 判断指令
- #if #elseif #else #end
#if(condition)
statement
#elseif(condition)
statement
#else
statement
#end
2.5 循环指令
- #foreach # end
#foreach($ref in arg)
statement
#end
2.6 #include 指令
## 在模板中引入本地文件
#include("file1.txt","file2.txt")
#include($namelist,$companylist)
2.7 #parse 指令
## 在模板中引用其他模板,一次只能引入一个
#parse("basefunc.vm")
2.8 #stop 指令
- 方便调试使用
2.9 #macro 指令
- 定义一段可重用的VTL template
## 使用时 #vmname($arg1 $arg2 $arg3...)
#macro(vmname $arg1 $arg2 $arg3...)
code...
#end
3. 环境配置
3.1 需要的jar包
commons-beanutils-1.7.0.jar 对bean操作的一些类
commons-collections-3.2.jar 扩展类java.util.Map的一些集合
commons-digester-1.8.jar 用于处理xml转换到对象的工具类
commons-lang-2.2.jar 扩展了java.lang类
commons-logging-1.1.jar 日志输出类
velocity-1.7.jar 包含velocity运行时需要的类
velocity-tools-2.0.jar 视图控制和系统工具类