先来看看velocity是怎么工作的?
在应用中使用velocity,一般需要以下的几个步骤:
- 初始化Velocity,可以使用单例,或者运行期实例
- 创建context对象,用于包括相应的变量
- 在context中增加相应的数据
- 选择模板
- 合并模板,产生输出
如下的例子:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->import java.io.StringWriter;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.MethodInvocationException;
Velocity.init(); 1
VelocityContext context = new VelocityContext(); 2
context.put( "name", new String("Velocity") ); 3
Template template = null;
try
{
template = Velocity.getTemplate("mytemplate.vm"); 4
}
catch( ResourceNotFoundException rnfe )
{
// couldn't find the template
}
catch( ParseErrorException pee )
{
// syntax error: problem parsing the template
}
catch( MethodInvocationException mie )
{
// something invoked in the template
// threw an exception
}
catch( Exception e )
{}
StringWriter sw = new StringWriter();
template.merge( context, sw ); 5
上面的例子使用的是单例模式,可以使用运行期实例:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->VelocityEngine ve = new VelocityEngine();
ve.setProperty(
VelocityEngine.RUNTIME_LOG_LOGSYSTEM, this);
ve.init();
关于context
context,类似于map环境,包括两个主要的方法:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->public Object put(String key, Object value);
public Object get(String key);
而默认的VelocityContext是使用map封装,保存相应的变量
当然,如果想和其他环境合并,如FacesContext中的Elcontext,需要定义自己的实现类。
Context chaining,
context支持多个context串,如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->VelocityContext context1 = new VelocityContext();
context1.put("name","Velocity");
context1.put("project", "Jakarta");
context1.put("duplicate", "I am in context1");
VelocityContext context2 = new VelocityContext( context1 );
context2.put("lang", "Java" );
context2.put("duplicate", "I am in context2");
template.merge( context2, writer );
Velocity不仅可以用于提供模板输出,而且可以直接对字符串进行评估:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->StringWriter w = new StringWriter();
Velocity.mergeTemplate("testtemplate.vm", context, w );
String s = "We are using $project $name to render this.";
w = new StringWriter();
Velocity.evaluate( context, w, "mystring", s );
转:http://www.blogjava.net/zyl/archive/2007/05/17/117957.html
分享到:
相关推荐
Eclipse作为流行的Java IDE,可以集成Velocity开发插件,如M2Eclipse插件,提供模板编辑、语法高亮、自动完成等功能,方便开发和调试。 总结来说,Velocity是一个强大的模板引擎,它简化了Java Web开发中的视图层...
本篇文章将详细讲解如何手动在MyEclipse中安装Velocity编辑器插件,以提升对Velocity模板语言的开发体验。 Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态网页内容。在Web...
- **《DB4O中文系列之起步篇》**:虽然与Velocity关系不大,但提供了关于DB4O数据库的入门知识。 以上内容涵盖了从Velocity的基础介绍到高级应用的各种知识点,希望能够帮助读者全面了解如何利用Velocity构建高效、...
Velocity被广泛应用于Web应用开发、文档生成、报告制作等领域,因其简洁的语法和良好的可读性而备受青睐。本篇将详细介绍Velocity的基本语法和特性。 ## 1. Velocity模板语言基础 Velocity模板语言(VTL)是一种...
Velocity是一款基于Java的开源模板引擎,它为Web开发提供了强大的视图层解决方案。Velocity的主要目的是将业务逻辑与展示逻辑分离,让开发者能够专注于内容的呈现,而无需关心HTML、CSS等表现层的细节。这篇文档将...
本篇将详细介绍如何安装并使用Velocity Eclipse插件,以及其带来的便利性。 首先,我们来关注一下如何安装这个插件。下载的压缩包文件名为"com.googlecode.veloeclipse.ui_2.0.8",这表明它是Velocity Eclipse插件...
本篇文章将详细探讨“myeclipse Velocity 插件”,以及如何在MyEclipse中有效地利用这个插件进行开发工作。 Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑分离,从而实现更清晰的代码...
这篇内容将详细解释如何通过“link”方式在Eclipse中安装Velocity插件,以及相关步骤和注意事项。 首先,我们需要理解“link”方式安装插件的概念。在Eclipse中,"link"方式是一种不直接修改Eclipse安装目录的安装...
在本篇内容中,我们将聚焦于如何在MyEclipse 10中安装Velocity插件,这将帮助开发者更便捷地处理模板语言,尤其在进行Web应用开发时。Velocity是Apache软件基金会的一个开源项目,它是一种简单的、面向对象的模板...
本篇将详细解释标题和描述中提到的四个关键jar包及其在Velocity中的作用。 1. **velocity-1.4.jar**:这是Velocity的核心库,包含了Velocity引擎的主要实现。1.4版本是较早的一个稳定版本,提供了基本的模板处理...
### Apache Velocity - 开发者指南 #### 一、简介与入门 Apache Velocity 是一个...通过阅读本指南,你应该能够掌握 Velocity 的基本使用方法,并具备开发高效、可扩展的应用程序的能力。希望这篇文档对你有所帮助!
这篇博客“记录一下Velocity防Xss攻击”探讨了如何在使用Velocity时防止这种攻击。 Velocity模板引擎的设计初衷是为了简化Web开发,提供一种将业务逻辑与视图层分离的方式。然而,任何能够动态生成HTML的工具都...
在IT行业中,Velocity是...这篇文章主要介绍如何在MyEclipse 8.5版本中安装Velocity插件,以及解决可能出现的问题。 **一、在线安装 Velocity 插件** 在线安装是最方便快捷的方式。你可以通过访问以下地址进行安装: ...
花了所有CSDN积分收集来的Velocity资料集合: Velocity Java开发指南中文版 Velocity Web应用开发指南中文版 Velocity模板使用指南中文版 VTL语法参考指南中文版 DB4O系统应用之起步篇 ...使用Velocity开发web程序
本篇文章将深入探讨如何使用Velocity实现邮件模板的定制,以及与之相关的源码和工具。 首先,Velocity的基本原理是通过一种简单的模板语言(Velocity Template Language,VTL)来分离内容和展示逻辑。开发者可以...
本篇文章将深入探讨如何在Velocity中实现本地化应用。 首先,本地化(Localization,简称L10n)是指使软件适应特定地区或语言的过程,包括文字、日期、时间、数字格式以及文化习惯等方面的调整。在Velocity中实现...
【描述】这篇博客文章详细介绍了如何利用Java的Swing库构建图形用户界面,并结合Velocity模板语言来编写动态代码生成逻辑。Velocity Swing结合了Swing的强大UI设计能力与Velocity的模板处理能力,使得开发者可以...
本篇文章将深入探讨Velocity如何作为生成静态页模板的技术实例。 **一、Velocity模板语言基础** Velocity模板语言(VTL)是Velocity的核心,它提供了一种简单而强大的方式来连接模板和后端数据。VTL的关键元素包括...
插件提供了诸如代码完成、代码折叠、模板语法检查等特性,大大提升了Velocity开发的效率和体验。 请注意,虽然离线安装简单快捷,但在某些情况下,可能需要在线更新或安装其他依赖插件以确保最佳的开发环境。如果你...
虽然 `《DB4O Java开发应用》--之起步篇.doc` 不直接关于 Velocity,但 DB4O 是一个对象数据库,可能在 Velocity 模板中使用以存储和检索数据。了解如何与这种类型的数据库交互可以增强 Velocity 应用的性能和灵活性...