一个简单的定制标签包括了以下几个要素:
- JavaBean:为了充分利用Java的面向对象特性,重用代码应当放置在单独的代码容器内。这些JavaBean可不是标签库的一部分。他们是标签库用来执行所分配任务的基础代码模块。
- 标签处理器:这 是标签库的真正核心。标签处理器(tag handler)引用他所需要的任何外部材料(JavaBean)并且负责访问JSP页面的信息(PageContext对象)。而JSP页面则把页面上 配置的标签属性都传递给标签处理器,JSP页面上的标签标示的内容也是这样处理的。当标签处理器完成其处理过程,他就会把处理后的输出结果回送给JSP页 面做进一步处理。
- 标签库描述符(TLD文档):这是一种很简单的XML文档,TLD文档描述和说明了属性、信息和标签处理器文档位置等信息。JSP 容器使用这一文档来映射被调用标签库的位置和用法。
- Web站点的web.xml文档:其实这就是您的Web站点上的初始化文档。在这个文档内您能够定义Web应用程式中使用的定制标签,还能够定义用来描述每个定制标签的TLD文档。
- 发布文档(WAR或JAR文档):假 如您打算重用定制标签,那么您肯定需要想个简便的办法把标签从一个项目迁移到其他项目中去。把标签库打包成一个JAR文档就是这种既方便又高效的标签库发 布方式。我们在以上的事例中没有建立JAR文档,但是假如您打算更进一步地了解JAR文档的细节,您不妨阅读“JSP WAR文档简介”。
- JSP页面上的标签库声明:仅需使用标签库标示符即可方便地声明页面上存在的标签。标签库在页面上声明之后,您就能够随意使用他们了。
看 起来会让您忙乎一阵子,实际上没那么糟糕。刚开始用的时候当然会有点棘手。其实真正关键的并不是编码而是把以上各个部分正确地组织起来。这种层次性的结构 是很重要的,也正是如此才能够说标签库及灵活又易于使用。更重要的事,这些层次能够让整个建立标签库的过程都能通过JSP IDE自动完成。今后的JSP IDE更能够自动完成创建定制标签的大部分工作,而您自己则只需要负责建立代码和标签处理器。
(注意:一个标签处理器只定义一个定制标签;而一个标签库则是很多个标签处理器的集合,他们执行同一任务。)