您的位置:首页 > 编程语言 > Java开发

Velocity模板引擎之旅(1)

2007-10-05 17:52 441 查看
这篇文章译自javaWord上面的《Start up the velocity Template Engine》 

By Geir Magnusson Jr., JavaWorld.com, 12/28/01
Velocity是一个由互联网上的自愿者开发的开源模板工具,现在由Apache软件基金会下的jakarta项目管理。在Jakarta Velocity Project网站上,你可以随意下载可获取现有的源代码,一个欣欣向荣的用户社区时刻准备回答问题,同时提供模板问题的解决方案。Velocity被WebMacro项目的领先者所激励,很幸运能在Velocity社区工作。
在这篇文章中,我提出一个简短关于Velocity模板引擎和Velocity模板语言(Velocity Template Language--VTL)的讨论。通过几个例子描述怎样使用Velocity.
开始当然是HelloWorld
除了Hello world例子,没有更完好的与编程相关主题的解释了。
任何一个Velocity应用都需要两个部分,首先是模板(template),在这个例子中是一个被称作helloworld.vm的文件
内容如下:

Hello $name! Welcome to Veloctity!
第二部分是相应的java程序,叫HelloWorld.java
代码如下:

import java.io.StringWriter;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
public class HelloWorld
{
public static void main( String[] args )
throws Exception
{
/*  first, get and initialize an engine  */
VelocityEngine ve = new VelocityEngine();
ve.init();
/*  next, get the Template  */
Template t = ve.getTemplate( "helloworld.vm" );
/*  create a context and add data */
VelocityContext context = new VelocityContext();
context.put("name", "World");
/* now render the template into a StringWriter */
StringWriter writer = new StringWriter();
t.merge( context, writer );
/* show the World */
System.out.println( writer.toString() );
}
}


现在,编译并运行这个程序,你将看到输出:
Hello World! Welcome to Velocity!
这是一个试验的例子,但是它包含了Velocity模板思想的重要部分。
为什么我需要使用Velocity?
Veloctiy被设计为一个容易使用的通用的模板工具,在很多需要格式化和展现数据java应用领域,Velocity是非常有用的。你将在以下问题中使用Velocity:
*它适用于一些应用领域,
*它提供一个简单,清晰的模板设计语法。
*它为开发者提供一个简单的程序模型。
*由于模板和代码是分开的,所以你可以单独的开发和维护。
*Velocity引擎很容易整合进任何java应用环境,特别是servlets
*在模板上下文中,Velocity可以访问数据对象的任意公共的方法。
最后重要的一点是,这意味着你可以重用已经存在的类。所以,在你模板中使用的对象不需要用一种特定的方法结构化,比如javabeans,或者实现指定的I I/O,或者是生命周期,如jsp标签。仅需要是公共方法。当我们详细学习模板语言的时候,你将了解更多。待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息