使用Velocity实现客户端和服务器端模板 - 编程入门网
件: velocity-dep---?.jar (其中的 --? 是版本号信息)和 velocity---?.jar 。velocity-dep---?.jar 文件包括所有的外部依赖(Jakarta common-collections、Avalon Logkit 和 ORO 正则表达式库),可以直接使用。如果您的 classpath 中已经有一些这样的库,您可能希望使用 velocity---?.jar 文件来代替。如果这些 JAR 组成都不能满足您的需要,可以很容易地按照需要的方式重新建立 Velocity。Velocity 发行包中包括一个 ant 脚本,可以为不同的应用场景建立 7 种不同的 JAR 配置。
为了便于上手,Velocity 预设了一些默认配置属性,对于多数应用而言,这都是合理的和可以接受的。这就避免了开发人员从一开始就忙于复杂的配置选项,让他们能马上体验到这种模板引擎。 服务器上的 Velocity 与 JSP 技术 在服务器端可以使用 Velocity 处理模板和生成的动态内容(HTML、XML等)。这和 JSP 技术的目标非常接近。但是,JSP 模型可以毫无阻碍地访问底层的 Servlet API 和 Java 编程语言。事实上,为了避免访问这些固有的特性,您在编码中必须严格约束(只是使用 EL、标签库和类似的特性)。它基本上是一种在很大程度上开放的访问模型。 拿 Velocity 与之比较。作为一种完全自包含的模板引擎和脚本解释器,Velocity 拥有完全封闭的模型。任何针对系统和/或 Java 编程语言的访问都必须明确地启用。默认情况,Velocity 模板中不能访问 Java 编程语言的任何方面。这种封闭的模型使 Velocity 能够提供分离的模板表示层,与任何应用程序业务逻辑或者数据管理代码清晰地划分开。 现在让我们把这种模板引擎与 Tomcat 5 的最新版本集成在一起,看一看 Velocity 在服务器端的应用。 与 Tomcat 5 一起部署 Velocity Velocity 发行包带有一个 org.apache.velocity.servletVelocityServlet 库类,扩展它可以很快地创建一个模板处理 servlet。作为独立的客户机应用程序测试的任何模板都可以使用 VelocityServlet 部署在服务器上。把独立的 Velocity 模板转移到 Web 应用程序中相对比较简单。只需要以下几个步骤: Velocity 中的工具 工具是在模板中可以通过 Velocity 上下文使用的实用 Java 对象。虽然可以手工把这些对象附加到上下文中,但 VelocityViewServlet 工具箱管理器可通过更加灵活和结构化的方式完成。在模板中一般是通过调用工具的方法来使用它们。VelocityViewServlet 与 VelocityStruts 都提供了非常有价值的经过测试的工具,在作为一种视图技术部署 Velocity 时极其有用。 从 org.apache.velocity.servlet.VelocityServlet 类派生一个 Servlet 类。 重写并实现其中的一个 handleRequest() 方法。 在 handleRequest() 的实现中,添加希望在模板中作为上下文属性使用的数据或工具(请参阅 Velocity 中的工具)。 在 handleRequest() 的实现中,从文件或资源(如 JAR 文件)中取得模板并返回它。 在示例代码包中, com.ibm.dvworks.velocity.VelTestServlet 就是按照上述步骤创建的一个 servlet。您可以查看 webapps\vservlet\WEB-INF\src 目录下的代码。如果改变了这些代码,一定要使用 compile.bat 批处理文件重新编译它。 部署描述符(web.xml 文件)定义了该 servlet 并把它映射到 /vServlet URL 模式中,如清单 19 所示: 清单 19. 自定义基于 Velocity 的 servlet 的 Tomcat 部署描述符
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |