`
wanxiaotao12
  • 浏览: 476902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

velocity 开发篇

 
阅读更多

先来看看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

分享到:
评论

相关推荐

    velocity入门篇

    Eclipse作为流行的Java IDE,可以集成Velocity开发插件,如M2Eclipse插件,提供模板编辑、语法高亮、自动完成等功能,方便开发和调试。 总结来说,Velocity是一个强大的模板引擎,它简化了Java Web开发中的视图层...

    Myeclipse手动安装Velocity编辑器插件

    本篇文章将详细讲解如何手动在MyEclipse中安装Velocity编辑器插件,以提升对Velocity模板语言的开发体验。 Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态网页内容。在Web...

    《Velocity Web应用开发指南中文版》.doc

    - **《DB4O中文系列之起步篇》**:虽然与Velocity关系不大,但提供了关于DB4O数据库的入门知识。 以上内容涵盖了从Velocity的基础介绍到高级应用的各种知识点,希望能够帮助读者全面了解如何利用Velocity构建高效、...

    velocity文档及其详细语法

    Velocity被广泛应用于Web应用开发、文档生成、报告制作等领域,因其简洁的语法和良好的可读性而备受青睐。本篇将详细介绍Velocity的基本语法和特性。 ## 1. Velocity模板语言基础 Velocity模板语言(VTL)是一种...

    velocity document

    Velocity是一款基于Java的开源模板引擎,它为Web开发提供了强大的视图层解决方案。Velocity的主要目的是将业务逻辑与展示逻辑分离,让开发者能够专注于内容的呈现,而无需关心HTML、CSS等表现层的细节。这篇文档将...

    velocity eclipse插件

    本篇将详细介绍如何安装并使用Velocity Eclipse插件,以及其带来的便利性。 首先,我们来关注一下如何安装这个插件。下载的压缩包文件名为"com.googlecode.veloeclipse.ui_2.0.8",这表明它是Velocity Eclipse插件...

    myeclipse Velocity 插件

    本篇文章将详细探讨“myeclipse Velocity 插件”,以及如何在MyEclipse中有效地利用这个插件进行开发工作。 Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑分离,从而实现更清晰的代码...

    velocity link方式安装插件

    这篇内容将详细解释如何通过“link”方式在Eclipse中安装Velocity插件,以及相关步骤和注意事项。 首先,我们需要理解“link”方式安装插件的概念。在Eclipse中,"link"方式是一种不直接修改Eclipse安装目录的安装...

    myeclipse10 velocity插件的安装及安装包

    在本篇内容中,我们将聚焦于如何在MyEclipse 10中安装Velocity插件,这将帮助开发者更便捷地处理模板语言,尤其在进行Web应用开发时。Velocity是Apache软件基金会的一个开源项目,它是一种简单的、面向对象的模板...

    velocity相关的四个jar包

    本篇将详细解释标题和描述中提到的四个关键jar包及其在Velocity中的作用。 1. **velocity-1.4.jar**:这是Velocity的核心库,包含了Velocity引擎的主要实现。1.4版本是较早的一个稳定版本,提供了基本的模板处理...

    Apache Velocity - Developer's Guide

    ### Apache Velocity - 开发者指南 #### 一、简介与入门 Apache Velocity 是一个...通过阅读本指南,你应该能够掌握 Velocity 的基本使用方法,并具备开发高效、可扩展的应用程序的能力。希望这篇文档对你有所帮助!

    记录一下Velocity防Xss攻击

    这篇博客“记录一下Velocity防Xss攻击”探讨了如何在使用Velocity时防止这种攻击。 Velocity模板引擎的设计初衷是为了简化Web开发,提供一种将业务逻辑与视图层分离的方式。然而,任何能够动态生成HTML的工具都...

    myeclipse8.5安装velocity插件

    在IT行业中,Velocity是...这篇文章主要介绍如何在MyEclipse 8.5版本中安装Velocity插件,以及解决可能出现的问题。 **一、在线安装 Velocity 插件** 在线安装是最方便快捷的方式。你可以通过访问以下地址进行安装: ...

    Velocity 资料汇总

    花了所有CSDN积分收集来的Velocity资料集合: Velocity Java开发指南中文版 Velocity Web应用开发指南中文版 Velocity模板使用指南中文版 VTL语法参考指南中文版 DB4O系统应用之起步篇 ...使用Velocity开发web程序

    velocity实现邮件模板定制

    本篇文章将深入探讨如何使用Velocity实现邮件模板的定制,以及与之相关的源码和工具。 首先,Velocity的基本原理是通过一种简单的模板语言(Velocity Template Language,VTL)来分离内容和展示逻辑。开发者可以...

    Velocity本地化应用举例

    本篇文章将深入探讨如何在Velocity中实现本地化应用。 首先,本地化(Localization,简称L10n)是指使软件适应特定地区或语言的过程,包括文字、日期、时间、数字格式以及文化习惯等方面的调整。在Velocity中实现...

    使用Velocity Swing制作的代码生成工具

    【描述】这篇博客文章详细介绍了如何利用Java的Swing库构建图形用户界面,并结合Velocity模板语言来编写动态代码生成逻辑。Velocity Swing结合了Swing的强大UI设计能力与Velocity的模板处理能力,使得开发者可以...

    velocity官方实例

    本篇文章将深入探讨Velocity如何作为生成静态页模板的技术实例。 **一、Velocity模板语言基础** Velocity模板语言(VTL)是Velocity的核心,它提供了一种简单而强大的方式来连接模板和后端数据。VTL的关键元素包括...

    eclipse4.5版本velocity离线安装插件Veloeclipse2.0.8

    插件提供了诸如代码完成、代码折叠、模板语法检查等特性,大大提升了Velocity开发的效率和体验。 请注意,虽然离线安装简单快捷,但在某些情况下,可能需要在线更新或安装其他依赖插件以确保最佳的开发环境。如果你...

    Velocity指南

    虽然 `《DB4O Java开发应用》--之起步篇.doc` 不直接关于 Velocity,但 DB4O 是一个对象数据库,可能在 Velocity 模板中使用以存储和检索数据。了解如何与这种类型的数据库交互可以增强 Velocity 应用的性能和灵活性...

Global site tag (gtag.js) - Google Analytics