`
zyl
  • 浏览: 486713 次
社区版块
存档分类
最新评论

velocity 二 开发篇

阅读更多
先来看看velocity是怎么工作的?

在应用中使用velocity,一般需要以下的几个步骤:
  •   初始化Velocity,可以使用单例,或者运行期实例
  •   创建context对象,用于包括相应的变量
  •   在context中增加相应的数据
  •   选择模板
  •   合并模板,产生输出

如下的例子:
java 代码
 
  1. import java.io.StringWriter;  
  2. import org.apache.velocity.VelocityContext;  
  3. import org.apache.velocity.Template;  
  4. import org.apache.velocity.app.Velocity;  
  5. import org.apache.velocity.exception.ResourceNotFoundException;  
  6. import org.apache.velocity.exception.ParseErrorException;  
  7. import org.apache.velocity.exception.MethodInvocationException;  
  8.   
  9. Velocity.init();                            1  
  10.   
  11. VelocityContext context = new VelocityContext();    2  
  12.   
  13. context.put( "name"new String("Velocity") );        3  
  14.   
  15. Template template = null;  
  16.   
  17. try  
  18. {  
  19.    template = Velocity.getTemplate("mytemplate.vm");    4  
  20. }  
  21. catch( ResourceNotFoundException rnfe )  
  22. {  
  23.    // couldn't find the template  
  24. }  
  25. catch( ParseErrorException pee )  
  26. {  
  27.   // syntax error: problem parsing the template  
  28. }  
  29. catch( MethodInvocationException mie )  
  30. {  
  31.   // something invoked in the template  
  32.   // threw an exception  
  33. }  
  34. catch( Exception e )  
  35. {}  
  36.   
  37. StringWriter sw = new StringWriter();  
  38.   
  39. template.merge( context, sw );                5  

上面的例子使用的是单例模式,可以使用运行期实例:
java 代码
 
  1. VelocityEngine ve = new VelocityEngine();  
  2. ve.setProperty(  
  3.     VelocityEngine.RUNTIME_LOG_LOGSYSTEM, this);  
  4. ve.init();  

关于context
context,类似于map环境,包括两个主要的方法:
java 代码
 
  1. public Object put(String key, Object value);  
  2. public Object get(String key);  

而默认的VelocityContext是使用map封装,保存相应的变量

当然,如果想和其他环境合并,如FacesContext中的Elcontext,需要定义自己的实现类。

Context chaining,
context支持多个context串,如下:
java 代码
 
  1. VelocityContext context1 = new VelocityContext();  
  2.   
  3. context1.put("name","Velocity");  
  4. context1.put("project""Jakarta");  
  5. context1.put("duplicate""I am in context1");  
  6.   
  7. VelocityContext context2 = new VelocityContext( context1 );  
  8.   
  9. context2.put("lang""Java" );  
  10. context2.put("duplicate""I am in context2");  
  11.   
  12. template.merge( context2, writer );  


Velocity不仅可以用于提供模板输出,而且可以直接对字符串进行评估:
java 代码
 
  1. StringWriter w = new StringWriter();  
  2. Velocity.mergeTemplate("testtemplate.vm", context, w );  
  3.   
  4. String s = "We are using $project $name to render this.";  
  5. w = new StringWriter();  
  6. Velocity.evaluate( context, w, "mystring", s );  


分享到:
评论

相关推荐

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

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

    Myeclipse手动安装Velocity编辑器插件

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

    velocity入门篇

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

    velocity document

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

    velocity eclipse插件

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

    velocity文档及其详细语法

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

    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软件基金会的一个开源项目,它是一种简单的、面向对象的模板...

    Apache Velocity - Developer's Guide

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

    velocity相关的四个jar包

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

    myeclipse8.5安装velocity插件

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

    记录一下Velocity防Xss攻击

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

    velocity官方实例

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

    velocity实现邮件模板定制

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

    Velocity本地化应用举例

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

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

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

    Velocity指南

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

    Velocity 资料汇总

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

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

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

Global site tag (gtag.js) - Google Analytics