我使用JSP和ASP编程已经有一段颇长的时间了......
作者:QQ新人类 来源:yesky 2007年10月30日
关键字:
标签库的重要特性
1.易于在多个项目安装
标签库可以很方便地在项目间转移。一旦标签库建立好,则只需要将所有的东西打包为一个JAR文件,你就可以在任何的JSP项目中重新使用。由于这个原因,标签库越来越通行,在网上,你要找标签的最佳地点是JSPTags.com(http://jsptags.com/tags/)。
2.扩展JSP
标签库可以继承JSP规范各方面的特性(例如JSP1.2)。这样,你就可以无限制地扩展和增加JSP的功能,而无需要等待下一版本JSP的出现。例如,你对JSP的include调用不太满意。你可以建立自己的include标签,该标签执行的是你自己的规范。
3.容易维护
标签库可令JSP的web应用非常易于维护,原因有:标签应用简单,也便于以后解释所有你的逻辑都放到集中的标签处理和JavaBeans中。这意味着你在升级代码时,无需要对每个使用该代码的页面进行修改,你只需要修改集中的代码文件便可
。如果你需要加入新的功能,你也无需修改所有现有的页面,你可以在自己的标签中加入更多的属性,这些属性可加入新的处理,而其它旧的属性不变,这样所有旧的页面还可以正常工作 例如你有一个让所有文本变蓝的标签
My Text
后来在项目中你想选择蓝色的深浅(shade),这样你可以保留原有的标签,只要加入一个新的属性--shade。
My Text
所有旧的标签仍然可以产生蓝色的文本,不过现在你可以使用同样的标签产生不同深浅的蓝色文本。
。标签有利于代码的重用。代码经过长时间的使用测试,它的bug就更少。这样,使用自定义标签的JSP页面将有着更少的bug,从而更容易维护。
4.快速的开发时间
标签库提供一个简单的方式来重用代码。在服务器端的语言中,其中一个标准的重用代码方式是使用模板。相对于使用模板库,标签库是一个更好的解决办法。使用模板库,你必须为每个项目修改模板或者且建立严格的界面,而标签库则没有这些限制,并且拥有所有面向对象的好处,可以做到灵活和更有扩展性,而且,通过重用代码,你可以花费更少的时间来做开发,更多的时间可以用在设计你的web应用上。标签库的接口也很简单,非常容易做插入、使用和调试。
标签的组件
虽然标签库非常易于使用,不过要建立一个内里的设计来支持标签库是颇复杂的,起码要比建立一个简单的JavaBean复杂。这个复杂是来自于标签库是由几部分构成的。不过,你只需要知道Java和JSP的知识就够了。
一个简单的标签由下面的元素构成:
1.JavaBeans:为了得到Java与生具来的面向对象的好处,可重用的代码应该放到一个独立的代码容器中。这些JavaBeans并不是标签库的一部分。不过它是你的代码库用来执行相关任务的基本代码块。
2.标签处理:这是标签库的真正核心。一个标签处理器将引用它需要的任何资源(你的JavaBeans)和访问你的JSP页面的全部信息(pageContext对象)。JSP页面也会将所有已经被设置的标签属性和JSP页面上的标签体中的内容传送给标签处理器。在标签处理器处理完毕后,它将发回输出到你的JSP页面进行处理。
3.标签库的描述(tld文件):这是一个简单的XML文件,它记录着标签处理器的属性、信息和位置。JSP容器通过这个文件来得知从哪里及如何调用一个标签库。
4.网站的web.xml文件:这是你网站的初始化文件,在这个文件中,你定义了网站中用到的自定义标签,以及哪个tld文件用来描述每个自定义的标签。
5.分发文件(一个WAR或者JAR文件):如果你想重用自定义标签的话,你需要一个方法来将它由一个项目转移到另一个项目中。将标签库打包为一个JAR文件是一个简单而且有效的方式。
6.在你的JSP文件中作标签库声明:很简单,如果要用到该标签的话,只要在页面声明一下就可以,其后,你就可以在该JSP页面的任何地方使用它。
看来要做的工作很多,不过其实并不是很难。它的要点并不在于编码,而是在于如何将各部分正确地组织起来。不过,这样的分层是很重要的,它可令标签的使用灵活和更容易转移。更重要的是,这些层的存在可让处理建立标签的工程通过一个JSP IDE(JSP的集成开发环境)自动完成。期望将来的JSP IDE可自动完成创建一个自定义标签的大部分工作,这样你只需要写代码和标签处理就可以了。