快速业务通道

使用Velocity实现客户端和服务器端模板 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
擎要使用的属性,最后调用 processTemplate() 合并数据和模板。我们将按照顺序依次分析这些方法。

您可以在 org.apache.velocity.app.Velocity 类中使用静态方法初始化 Velocity 并加载一个模板文件。要使用的方法分别为 init() 和 getTemplate() 。对 init() 方法的调用出现在 VelocityParser 类的构造函数中,如清单 16 所示:

清单 16. 在 VelocityParser 类的构造函数中初始化模板引擎

public VelocityParser(String templateFile) {      try {        Velocity.init("velocity.properties");        mainTemplate = Velocity.getTemplate(templateFile);       }       catch( Exception ex ) {          System.out.println("Error processing template file: " + templateFile );       }     }

在清单 16 中,对 init() 的调用创建了一个 Velocity 引擎实例。如果应用程序需要创建和管理多个 Velocity 模板引擎实例,则应使用 org.apache.velocity.app.VelocityEngine 类。

使用Velocity实现客户端和服务器端模板(7)

时间:2011-06-27 IBM Sing Li

上下文链

只要调用 org.apache.velocity.VelocityContext 类的普通构造函数就可以创建直接可用的 Velocity 上下文。

Velocity 上下文可以 进行链接(包装在另一个上下文内部)。如果需要在模板中控制特定对象引用的可见性和可用性,这样做非常有用。

Velocity 将在对象引用的所有链接上下文中搜索属性。如果遇到重复的名称,则使用最外层的属性,而内部的同名属性永远不会被访问。

为了链接 Velocity 上下文,要链接的上下文应该作为参数传递给一个新上下文的构造函数。清单 17 中 VelocityParser 类的重载方法 addToContext() 说明了这一点:

清单 17. 使用 addToContext() 方法增加上下文属性或者上下文链接

public void addToContext(String key, Object value) {       if (mainContext == null)         mainContext = new VelocityContext();        mainContext.put(key, value);     }     public void addToContext(VelocityContext chainCtx) {       mainContext = new VelocityContext(chainCtx);     }

在 processTemplate() 方法中,调用模板的 merge() 方法结合上下文信息和模板生成输出流,如清单 18 所示:

清单 18. 在 processTemplate() 方法中合并模板

public void processTemplate() {       try {        BufferedWriter writer = writer = new BufferedWriter(          new OutputStreamWriter(System.out));        if ( mainTemplate != null)          mainTemplate.merge(mainContext, writer);        writer.flush();        writer.close();      }      catch( Exception ex )  {        ex.printStackTrace();      }    }

使用Velocity实现客户端和服务器端模板(8)

时间:2011-06-27 IBM Sing Li

Velocity 作为独立的解析器

要编译上述示例独立解析器,请使用安装目录下 \code\app 中的 compile.bat 文件。要试验该解析器,请使用 process.bat 批处理文件,其中包括:

set VEL_HOME=\jdk1.4\vel14rc1 java -classpath ..\classes;%VEL_HOME%\velocity-dep-1.4-rc1.jar com.ibm.dvworks.velocity.VelocityParser %1 %2 %3

注意,必须同时在 compile.bat 和 process.bat 中把环境变量 VEL_HOME 设置成安装 Velocity 的目录。在 Velocity 发行包中包含两类不同的 JAR 文

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号