快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
使用双引号或单引号分隔。但是使用双引号允许在分隔的字符串 内部对 Velocity 引用、指示符甚至 Velocimacros 求值。

Velocity 上下文

您可以把 Velocity 中的上下文看作是导入 Java 对象,以便在 Velocity 模板内部访问的一种方法。这种导入必须在 Java 编码中明确地完成。和 JSP 代码或者 JavaScript 不同,不存在“自然的”或“原生方式”使 Velocity 访问任何 Java 对象。只有明确导入的 Java 对象才能在 Velocity 模板中使用。

通过创建 org.apache.velocity.context.Context 类的实例可以获得 Velocity 上下文。然后可以使用上下文的 put( key, value) 方法,把将要导入供模板使用的对象附加到上下文中。key 是一个字符串名,将在模板中作为可用的引用出现。在产品环境中,图形或者 Web 设计人员可能负责创建和维护模板,而 Java 开发人员提供可以在模板中访问的对象集。在这种情况下,设计人员和开发人员应就对象集合及其可用的属性达成一致并互相协作。在 Velocity 上下文中附加的属性将作为主要的接口机制。

在模板中访问上下文属性

看一看一个独立解析器中包含的示例代码。可以在 \code\src 目录下找到。比如,在 com.ibm.dvworks.velocity.VelocityParser 类中,我们已经创建并向 Velocity 上下文中添加了两个属性,如清单 13 所示:

清单 13. 在 VelocityParser 类中创建一个 Velocity 实例

public static void main(String[] args)  {      VelocityParser velInstance = new VelocityParser(args[0]);      velInstance.addToContext( "treeFarm",      new String [] { "redwood", "maple", "oak", "pine" });      velInstance.addToContext( "title", "A Tree Farm"); velInstance.addToContext( "date", new java.util.Date());      velInstance.addToContext("fmtr",      new org.apache.velocity.app.tools.VelocityFormatter(           velInstance.getCurrentContext()));      velInstance.processTemplate();    }

属性 treeFarm 是一个关于树名的 ArrayList 。title 属性是一个标量字符串。一旦附加到上下文中并在合并过程中传递,这些属性在 Velocity 模板中立刻就变得没有用了。清单 14 中的模板使用了这两个属性。您可以在 \code\app\treectx.vm 中找到这个例子。

清单 14. 使用 $treeFarm 上下文属性引用

<table> <tr><td>$title</td></tr> #foreach $name in $treeFarm  <tr><td>     $name is a big tree! </td></tr> #end </table>

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

时间:2011-06-27 IBM Sing Li

合并后的输出如清单 15 所示:

清单 15. 模板的合并输出

<table> <tr><td>A Tree Farm</td></tr> <tr><td>     redwood is a big tree! </td></tr> <tr><td>     maple is a big tree! </td></tr> <tr><td>     oak is a big tree! </td></tr> <tr><td>     pine is a big tree! </td></tr> </table>

要注意,使用 $treeFarm 上下文属性引用的方法和前面分析的 $treeList 变量引用一致。

初始化模板引擎

分析 VelocityParser 类中列出的 main() 方法(参见清单 13)。VelocityParser 构造函数创建解析器并加载模板,然后增加模板引

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号