一、简介
Velocity 是一种基于java的模板引擎,它允许任何人去用一个简单但强大的模板语言去应用一再java code里定义的java 对象。
当Velocity用于web开发时,web的设计人员(估计是前台dev吧),可以通过Model-View-Controller(MVC)模式与Java 程序员并行地工作。这就意味着,
web page的设计者只需要关注这个page的样式,后台程序员则只需要关注他的逻辑代码。Velocity把Java code跟web page分离开来,去让web page 在它的生命周期中能
够更可控的。并且,Velocity也提供了去替代JSP和PHP的一种机会。
Velocity的应用不仅仅局限于web,举个例来说,它可以用来产生SQL,PostScript和XML. 它也可以作为一个工具用来产生源码和报告,或者作为一个组件被整合到其他的系统
中。例如,Velocity就可以为一个名为 Turbine的web 应用框架提供模板服务。通过MVC模型,Velocity作为一个视图层(View)的引擎,极大地促进了web 应用的开发。
二、坏境
我们只需要velocity-1.7.jar和velocity1.7-dep.jar就可以开发了,下载地址为 Velocity
三、Hello, World
1.用Velocity工作的步骤大致如下:
a.初始化Velocity.这一步也用到了单例的设计模式,Velocity用单例,VelocityEngine用的是多例,它们都只可用初始化一次。
b.创建上下文对象。
c.把你的数据对象添加到上下文对象中去。
d.选择一个模板
e.融合你的模板和数据,参数输出结果。
2. java代码
模板(testtemplate.vm)
hello, ${name}, welcome to velocity world!
java code(Example2)
package com.desmond.velocity.test;
import java.io.StringWriter;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
public class Example2
{
public static void main( String args[] )
{
/* first, we init the runtime engine. Defaults are fine. */
Velocity.init();
/* lets make a Context and put data into it */
VelocityContext context = new VelocityContext();
context.put("name", "VTL");
context.put("project", "Jakarta");
/* lets render a template */
StringWriter w = new StringWriter();
Velocity.mergeTemplate("testtemplate.vm", context, w );
System.out.println(" template : " + w );
/* lets make our own string to render */
String s = "We are using $project $name to render this.";
w = new StringWriter();
Velocity.evaluate( context, w, "mystring", s );
System.out.println(" string : " + w );
}
}
输出结果:
template : hello, VTL, welcome to Velocity World!
string : We are using Jakarta VTL to render this.
参考: http://velocity.apache.org/engine/releases/velocity-1.5/developer-guide.html