创建标签描述符 我们需要描述自定义标签以让系统知道如何处理。该描述文件的后缀为.tld,TLD文件通常就以标签处理器命名,并存放在“/WEB-INF/”目录之下。请参看清单D。 清单D:HTML编码标签描述器 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <TAGLIB> <TLIBVERSION>1.0</TLIBVERSION> <JSPVERSION>1.1</JSPVERSION> <SHORTNAME>HTML_FormatTag</SHORTNAME> <URI></URI> <INFO>HTML Encoding Tag </INFO> <TAG> <NAME>HTMLEncode</NAME> <TAGCLASS>HTML_FormatTag</TAGCLASS> <INFO>Encode HTML</INFO> </TAG> </TAGLIB> 更新Web XML文件 现在可以告诉JSP容器如何使用标签库了。为此要修改web.xml文件,具体说来是要在其中加入一个taglib的项目来注册该标签库,并为标签分配一个URI。URI是Web站点上唯一应用于这一特定标签的索引。由于标签今后还可能用在不同的Web站点上,所以你最好采用完整的URL和/或者包名字(package name)来保证这一唯一性。这个例子是简化了,示例代码请参看清单E。 清单E:修改web.xml文件 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <WEB-APP> <TAGLIB> <TAGLIB-URI> HTMLEncode </TAGLIB-URI> <TAGLIB-LOCATION> /WEB-INF/HTML_FormatTag.tld </TAGLIB-LOCATION> </TAGLIB> </WEB-APP> 使用新的标签 自定义的标签设置好后,就可以用在你的JSP页面上了。要做到这一点,只需要在页面上使用taglib指示命令声明所要采用的标签即可。标签通过其唯一的 URI被索引,然后被分配给一个名字空间前缀(prefix)。这一前缀并没有什么特别的意义,只要它不与其它的名字空间冲突便可,可以任意。请参看以下的清单F和G。 清单F:在一个JSP页面上使用HTML编码标签 <%@ taglib uri="HTMLEncode" prefix="Examples" %> <PRE> <?XML:NAMESPACE PREFIX = Examples /><Examples:HTMLEncode> < Hello , Simple sample > </Examples:HTMLEncode> </PRE> 清单G:范例代码的输出 < Hello , Simple sample > which displays as: < Hello , Simple sample > 通过这个标签,我就将该页面的所有代码编码了。所有的自定义标签都是在服务器上处理的。这意味着你将不会在输出的页面上看到自定义的标签。 正如你所看到的那样,建立标签并非难事。最麻烦的是学习标签处理器的整个细节。这是一个很强大的功能,我们不过是触及了皮毛。由于这一过程需要采取的步骤很多,所以刚入门的JSP程序员可能在建立标签的时候会觉得很困惑。 结论
标签库是JSP最重要的特性之一,它还处在不断的发展中。它的确是一个新事物,因此还没有被广泛采用,不过自定义标签库已经剥去了它的神秘面纱,越来越多的开发者也开始关注和使用它了。在2001年末,可预料标签库将是许多JSP项目中的一个很常见的特性。 在这篇文章中只简要地讨论了标签库的好处。标签库实际上还有许多其它强大的功能。标签库促使JSP开发进入了前所未有的新天地。对JSP开发人员来说这确实是一种很令人振奋的新技术,因为他们得到了一个可将JSP转到各个应用并且建立任何类型web应用的工具。标签库让JSP变成了最丰富、最具动态开发能力的、强大的Web编程环境。它的功能只受我们的想象和创造力限制。 |