下面是一段来自互联网对于Velocity的简介:
-----------------------------------------------------------------------------------------------------------
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
-----------------------------------------------------------------------------------------------------------------------
使用了模板语言定义的模板文件
$user.name $user.age $user.gender
可以输出显示为
chenzuhuang 21 male
或者
tankui 22 male
这都取决于你java代码传入的对象user里存放的信息。
甚至你还可以使用判断、循环语句
#foreach $!{user} in $!{userList} $user.name $user.age $user.gender #end
简而言之,模板语言的使用需要事先写一份模板,在模板中的可变值处使用变量,当需要将模板文件用作显示或者作为字符串输出的时候,会把java bean中信息填充到模板文件中使用变量之处。
下面来看一个Velocity的使用例子,来了解下Velocity的工作原理以及应用。
一、下载Velocity的jar包
http://download.csdn.net/detail/yatyou/8731659
二、创建Eclipse Java Project
buildpath导入这两个jar包:
velocity-1.7.jar
Velocity-1.7-dep.jar
三、定义模板
在项目根目录下创建文件夹vm,并在其中创建一个文件index.vm
用户信息
用户名 | $user.username |
---|---|
年龄 | $user.age |
四、定义java bean,用来传递数据
package com.chenzuhuang.blog.bean; public class User { private String username; private int age; public User(String username, int age){ this.username = username; this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
五、测试
package com.chenzuhuang.blog.core; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.Reader;import java.io.StringWriter; import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity; import com.chenzuhuang.blog.bean.User; public class VelocityTest { public static void main(String[] args) throws FileNotFoundException { //创建bean对象 User user = new User("chenzuhuang", 21); //初始化Velocity引擎,Velocity引擎是单例模式且线程安全。 Velocity.init(); //创建VelocityContext上下文环境,并将user对象存放到VelocityContext中 VelocityContext context = new VelocityContext(); context.put("user", user); //通过FileReader来读取模板文件 Reader reader = new FileReader("vm/index.vm"); //创建字符串输出流,Velocity会将填充值后的模板字符串放在StringWriter里 StringWriter vmWriter = new StringWriter(); //根据指定的VelocityContext上下文对模板进行填值。 //第一个参数为指定上下文,第二个参数为字符串输出流,第三个参数为日志Tag,第四个为模板输文件输入流 Velocity.evaluate(context, vmWriter, "UserMessage", reader); //将经过替换模板输出 System.out.println(vmWriter.toString()); } }
六、运行
输出结果为
用户信息
用户名 | chenzuhuang |
---|---|
年龄 | 21 |
Blog:
首发于:
转载必须说明出处
----------------------------------------------------------------------------------------------------------