TLD文件配置详解

 

tld是taglib description 的缩写

定制标签拼图中的最后一块是TLD(标签库描述符) 文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet 容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。

定制标签拼图中的最后一块是TLD(标签库描述符) 文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet 容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。

可以看到,TLD文件只不过是一个XML文件。根标 签是,它包含一个或者多个标签,该元素用来声明定制标签。表4-1、表4-2和表4-3解释了TLD 中的每个标签。注意每个都必须包含一个或者多个声明。

表 4-1 TLD文件中的标签

标  签

含  义

taglib

TLD文件的根标签

tlibversion

此标签库的版本

jspversion

此标签库依赖的JSP版本。这里使用1.1

shortname

当在JSP中使用标签时,此标签库首选或者建议的前缀。当然可以完全忽略这个建议

tag

包含针对此标签库中的一个标签的元数据

表4-2 的子标签

标  签

含  义

name

标签名称

tagclass

Java标签处理器类的名称。注意这是处理器类的全限定名称,比如net.thinksquared.tags. MessageWriteTagHandler

bodycontent

此标签的主体部分的内容。使用JSP

attribute

包含了此标签的一个属性的元数据

表4-3 的子标签

标  签

含  义

name

属性的名称。很明显它在该标签中必须是唯一的

required

指示该标签是必需的(true)或者可选的(false)

实验:

例如,下面的代码将100摄氏度转换为212华氏度:

而下面这些代码则将100摄氏度转换为373开氏度:

为了创建这个标签,必须做到以下几点:

(1) 准备开发目录和脚本;

(2) 编写Java标签处理器类;

(3) 编写TLD文件来描述标签;

(4) 编写JSP来测试定制标签;

(5) 修改web.xml来注册TLD文件;

(6) 将应用程序安装到Tomcat中。

步骤1:准备开发环境和脚本

在硬盘合适的地方创建一个Struts目录。

解压,请确保保留了原来的目录结构。

应该能够看到.\Struts\lab4\子目录。

(在文本编辑器中打开.\Struts\lab4\compile.bat文件,并且修改PATH环境变量以便它指向JDK安装位置。

注意    在Windows XP、Windows ME或者Windows 2000中,系统内置了解压能力,但是系统解压的文件可能会加上一个额外的lab4目录到被解压的路径中。所以,compile.bat文件的路径可能变成是.\Struts\lab4\lab4\compile.bat。可以将文件夹向上移动,或者就放在那儿。编译脚本也能够正确运行。

步骤2:编写Java标签处理器

(1) 在文本编辑器中打开文件.\src\Converter.java。

(2) 添加一个私有的字符串变量_to。这将对应于定制标签的to属性。

(3) 创建一个getTo()和setTo()方法来获得和设置_to的值。servlet容器将使用这些方法来通过属性(attribute)to的值获得/设置属性(property)_to的值。

(4) 完成doAfterBody()方法,使用上面所属的需求规格。需要使用辅助类来做这些工作(详见代码清单4-4)。

(5) 注意doAfterBody()必须返回整数值的标记EVAL_PAGE来指示JSP页面的剩余部分是否需要继续处理。

(6) 单击compile.bat进行编译工作。

步骤3:编写标签库描述文件

(1) 在文本编辑器中打开.\web\WEB-INF\lab4-converter.tld文件。

(2) 这是一个空的TLD文件,只包含强制的样板文件。在样板之后创建一个根... 元素。

(3) 在元素之内,插入一个适当的标签定义,把代码清单4-5作为一个参考。

4.6.4 步骤4:修改web.xml

web.xml是一个标准的servlet配置文件。每个Web应用程序,甚至空的Web应用程序都必须要有自己的web.xml文件。

注意   如果将TLD文件放到WEB-INF目录中,实际上完全不必在web.xml中声明它们。但是,为了完整起见,我们会这样做。

(1) 在文本编辑器中打开.\web\WEB-INF\web.xml文件。注意web目录仅存在于开发时。compile.bat脚本会将整个WEB-INF目录上移,并且删除web文件夹。

(2) web.xml文件包含了样板文本,后面跟了一个标签。将代码清单4-6所示的标签插入元素封装标签之内。

代码清单4-6 插入到web.xml的代码

注意   请注意在代码清单4-6中,路径分隔符是UNIX风格的斜线(/),而不是Windows风格的反斜线(\)。

步骤5:编写JSP

(1) 在文本编辑器中打开文件.\web\test.jsp。

(2) 在JSP中加入定制标签库的taglib声明。记住使用在web.xml中定义的URI。

(3) 放入相应的标签代码来测试convert标签。至少应该测试一下在本实验开头所给出的全部例子。

步骤6:部署和测试

(1) 如果Tomcat在运行,请停止它。

(2) 单击compile.bat。这将编译源代码,并且产生一个WAR文件lab4.war。

(3) 将WAR文件拖到Tomcat的webapps目录中。记住,如果想要重新部署lab4应用,必须删除在webapps目录下的原有子目录。

(4) 启动Tomcat。使用http://localhost:8080/lab4/进行测试工作。

如果在某处被卡住了,你可能想要参考本实验的答案。可以在www.apress.com上的lab4-answers.zip文件中找到答案

你可能感兴趣的:(TLD文件配置详解)