Velocity是一个基于java的模板引擎(模板引擎的作用就是取得数据并加以处理,最后显示出数据)。
它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。
主要应用在:
1.Web应用的开发。
2.作为模板产生SQL,XML或代码等。
3.作为其他系统的集成组件使用。
当Velocity应用于application program或 a servlet,主要工作流程如下:
1.初始化Velocity.
2.创建Context对象
3.添加数据到Context
4.选择模板
5.合并模板和数据产生输出页面
准备工作:导入相关依赖包,在下面附件中。
例1:应用程序事例
1.模板文件hellovelocity.vm文件
- ##这是一行注释,不会输出
- #*这是多行注释,不会输出
- 多行注释*#
- // ---------- 1.变量赋值输出------------
- Welcome $name to Javayou.com!
- today is $date.
- tdday is $mydae.//未被定义的变量将当成字符串
- // -----------2.设置变量值,所有变量都以$开头----------------
- #set( $iAmVariable = "good!" )
- Welcome $name to Javayou.com!
- today is $date.
- $iAmVariable
- //-------------3.if,else判断--------------------------
- #set ($admin = "admin")
- #set ($user = "user")
- #if ($admin == $user)
- Welcome admin!
- #else
- Welcome user!
- #end
- //--------------4.迭代数据List---------------------
- #foreach( $product in $list )
- $product
- #end
- // ------------5.迭代数据HashSet-----------------
- #foreach($key in $hashVariable.keySet() )
- $key ‘s value: $ hashVariable.get($key)
- #end
- //-----------6.迭代数据List Bean($velocityCount为列举序号,默认从1开始,可调整)
- #foreach ($s in $listBean)
- <$velocityCount> Address: $s.address
- #end
- //-------------7.模板嵌套---------------------
- #foreach ($element in $list)
- #foreach ($element in $list)
- inner:This is ($velocityCount)- $element.
- #end
- outer:This is ($velocityCount)- $element.
- #end
- //-----------8.导入其它文件,多个文件用逗号隔开--------------
- #include("com/test2/test.txt")
##这是一行注释,不会输出
#*这是多行注释,不会输出
多行注释*#
// ---------- 1.变量赋值输出------------
Welcome $name to Javayou.com!
today is $date.
tdday is $mydae.//未被定义的变量将当成字符串
// -----------2.设置变量值,所有变量都以$开头----------------
#set( $iAmVariable = "good!" )
Welcome $name to Javayou.com!
today is $date.
$iAmVariable
//-------------3.if,else判断--------------------------
#set ($admin = "admin")
#set ($user = "user")
#if ($admin == $user)
Welcome admin!
#else
Welcome user!
#end
//--------------4.迭代数据List---------------------
#foreach( $product in $list )
$product
#end
// ------------5.迭代数据HashSet-----------------
#foreach($key in $hashVariable.keySet() )
$key ‘s value: $ hashVariable.get($key)
#end
//-----------6.迭代数据List Bean($velocityCount为列举序号,默认从1开始,可调整)
#foreach ($s in $listBean)
<$velocityCount> Address: $s.address
#end
//-------------7.模板嵌套---------------------
#foreach ($element in $list)
#foreach ($element in $list)
inner:This is ($velocityCount)- $element.
#end
outer:This is ($velocityCount)- $element.
#end
//-----------8.导入其它文件,多个文件用逗号隔开--------------
#include("com/test2/test.txt")
2.其它非模板文件text.txt
- ======text.txt====================
- this is test's content.yeah.
======text.txt====================
this is test's content.yeah.
3.客户端应用测试代码:
- p