快速业务通道

J2EE探索者: 用五个容易的步骤实现JSP自定义标记 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
t;    <tagclass>myTags.DateTag</tagclass>    <bodycontent>empty</bodycontent>    <info>Display Date</info>   </tag> </taglib>

DateTagLib.tld 是一个出色的、最小的标记库描述符文件。所有关键信息都包含在 Tag 标记中,在这里映射了标记名和处理程序类,我们声明了标记对于正文内容的敏感性 。对于更复杂的情况,我们可以使用其他的 XML 标记以提供有关库和标记的更多信息。在 一个库中定义多个标记也很常见。

第 3 步. 使 TLD 和处理程序类可访问

第 3 步是使这个类或者这些类和 TLD 可以被 Web 应用程序访问。有两种方法:可以 将类和 TLD 打包到一个 JAR 文件中,再将这个 JAR 文件储存在 Web 应用程序的 lib 目 录中,也可以将类文件分散地放到 classes 子目录中并将 TLD 文件放到 Web 应用程序的 WEB-INF 目录下面的某一位置。

在这个例子中,我们将使用第二种方法,将 TLD 文件和类分散地放到 Web 应用程序目 录结构中。您可以回忆起在第 1 步中我们已经将标记处理程序类放到了 classes 目录中 ,所以我们实际上只需储存 TLD 文件。TLD 文件被储存在 WEB-INF 目录或者子目录中, 如果是部署 Java 文件,则储存在 JAR 的 META-INF/ 目录或者子目录。在这里,我们没 有使用 JAR 文件,所以我们只将 TLD 储存到 Web 应用程序的 WEB-INF/lib 目录中。

J2EE探索者: 用五个容易的步骤实现JSP自定义标记(4)

时间:2011-04-11 IBM Kyle Gabhart

第 4 步. 引用这个库

这时,我们已经编译了标记处理程序类、创建了 TLD 文件以定义处理程序类和标记之 间的映射、并保证类和标记在应用程序中都是可访问的。下一步是建立 JSP 页面与标记库 之间的引用。有两种方法声明 JSP 页面与其库之间的引用。可以通过 Web 应用程序描述 符(web.xml)声明一个静态引用,也可以直接在页面中声明一个动态引用。我们将试用这 两种方法。

为了进行静态引用,首先必须将下面的项加入到 web.xml 文件中:

<?xml version="1.0" encoding="ISO-8859-1" ?> <Web-app>   <!-- Define Servlets, Servlet Mappings, etc. -->   <taglib>     <taglib-uri>myTags</taglib-uri>     <taglib-location>/WEB-INF/lib/DateTagLib.tld</taglib-location>   </taglib> </Web-app>

然后,将 JSP 声明加入到所有需要使用自定义标记库的页面中:

<%@ taglib uri="myTags" prefix="abc" %>

注意指定的 uri 属性与在 web.xml 文件中指定的 taglib-uri 值相匹配。

为了进行动态引用,只需在所有需要使用这个库的页面中加入一个 JSP 声明即可:

<%@ taglib uri="/WEB-INF/lib/DateTagLib.tld" prefix="abc" % >

静态引用与动态引用的比较

在进行标记库的静态引用时,JSP 声明必须查询 web.xml 文件以执行库查询。这意味 着如果移动或者重命名了库,或者希望在 web.xml 文件中加入更多的库,就必须停止服务 器、更新 web.xml 文件、然后重新启动服务器。动态方法让 JSP 页直接指向 TLD 位置, 因而是在解释 JSP 页面时进行处理。

静态方法提供了页面与库的实际名和位置之间一定程度的非直接性,这可以为您提供一 些改变这些属性而不修改页面的灵活性。另一方面,动态方法提供了更大的灵活性,让您 可以在运行时增加和移动标记声明。如果您对动态方法感兴趣,但是又担心做了一些改变 后、有可能要更新多个页面的维护负担,那么您可以始终将 JSP 声明放到一个单独的 JSP 文件中,并在每一个要访问 Web 应用程序的自定义库的页面中加入这一页

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