用户自定义标签

上传人:桔**** 文档编号:457452791 上传时间:2023-10-14 格式:DOC 页数:16 大小:55KB
返回 下载 相关 举报
用户自定义标签_第1页
第1页 / 共16页
用户自定义标签_第2页
第2页 / 共16页
用户自定义标签_第3页
第3页 / 共16页
用户自定义标签_第4页
第4页 / 共16页
用户自定义标签_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《用户自定义标签》由会员分享,可在线阅读,更多相关《用户自定义标签(16页珍藏版)》请在金锄头文库上搜索。

1、用户自定义标签.t机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论.那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,相守才是真爱. 用户自定义标签 在J2E项目中,JS页面常常通过在静态页面模板中嵌入scrptlet来插入动态的内容。然而,随着复杂程序的增加,JS页面也变得难于管理。 虽然用这种方法开发小形项目唾手可得,但是criptets仍然要面对下面的不利情况:ptlet难于阅读和修改。带有criptet的JSP页面混合了两种语言,这使得阅读和维护变得很困难。Siptlt鼓励了将

2、数据表现和逻辑处理的混合 。SP页面主要功能是数据表现而不是逻辑处理。逻辑处理属于Java类的工作,他们应该由程序员维护并能够重用。crptlets不能够被重用。当ciptlets被重用时,常常是鼓励拷贝-粘贴来达到重用的效果,这是一种危险的维护方法。每一次你拷贝粘贴crptet时,将有更多行多余的代码需要维护。Sciplets的参数很难进行确定传递.无论如何,绝大数人简单的拷贝,粘贴、编辑或者类似的增加,使得大部份的多余的代码需要更多的维护.与其创建充满了siptlets的巨大的JSP页面,不如考虑使用用户自定义标签。用户自定义标签允许你创建、在JSP中使用你自己定义的类HTML标签.每当J

3、SP引擎遇到用户自定义标签时,就会自动查找标签处理类,并自动调用他。页面中的自定义标签将会被票签处理类的输出所代替。这就使得JP页面不用直接在页面写Jva代码,就可以指定生成动态的内容的。用户自定义标签为你的网页设计提供了N种好处:他提高了页面代码的可读性。页面设计人员而不是程序员,能够使用很比使用Scritles更容易的使用标签。维护代码的程序员也只需个性标签库面不是JSP页面,这样他就不要再冒着破坏页面美观的风险。 在使用标签的每一处,增强或者固定的标签改变了标签了的表现.标签比Siets更容易确定参数,因为他会被 作为一种属性或者在标签体内被传达。最后,标签比Scriptets高度的可重

4、用性,因为你可以创建共享的、可重用的自定义标签库。 JSTL提供的就是这种标准的自定义标签集.让我们通过看一个简单的SP页面例子,来看看如何使用自定义标签。 下面这个页面使用sriptlet来得到数据:pageot=java。tSmleateFrt” % paeimporava.uil。DatHTMLSampl JS/TITLEBODYH3he date and tie at thesevrar: String sat =EEE, d MM yyy a kk:mm: z;implDatFomat fora = new SmplDteFormat(sfmat);Date ate newDate(

5、);Srin sa = ormatfomat(e);ot.rnt(sdte);/BOD/TM这个页面非常的简单直接,尽管这个简单的函数看上去好像有许多东东。如果你想要在每一个页面上显示日期,那么你只能拷贝粘贴这段代码到项目中的每一个页面。如果你这么做,那么你要维护的不仅仅是这段代码的原始拷贝,而是你粘贴的每一个拷贝。 如果这段代码出现在多个页面,那么改变一下时间格式将会占用你的很多时间.下面这段是一个非常清洁的JSP页面。在这里,Jav代码被从silet中移出放到了自定义标签中:TLEamle P sn a cstotag/ITLE/HD/H3ODY/HL在这个例子中,%tagli %用来指出

6、自定义标签描述符文件路径(标签库中的描述符或者L文件),并且为这个标签名定义一个名字空间(“mytgs,可是你喜欢的任何字符)。JSP引擎认可mytags:dat/作为一个用户定义标签的符号,他会调用这个标签的标签处理器,并用处理结果替换标签和内容。创建一个用户定义标签处理器创建一个用户定义标签处理器需要比定scritlt多一定量的工作,因为这一个Jv类,并且你不得不为他写一个TLD格式(在下一节介绍)的描述符文件。下面这个类ataTg实现了一个标签处理器:pubic lssDeagexteds Supprt prtectedPageontext _pageCntex; otected Sri

7、ng _sForat; stati final tring_sFormatDefalt ”EEEE, dMMM yyya kk:m:ss z”; ubi vid setPageCtex(PgeCtext pagonext) _paeoext= pageCotex; _sFomat = _FormatDefau; / Hande te tag puliint oStrtTag() hrowsspExcepin SimpeateForma fomt = ne SimpleDteorat(getrmat(); Jsprteo= peontex。gtOut(); Date date = new a()

8、; Strig sdate forat.formt(date); tr ut.prnt(ate); ctch (IEcpti ex) thrw nw JspEcetion(DteTag: cnt wte:+ ex。etMsse(); rtunKIP_BDY; / Handles or ”frmat atribut pbic voi setFormat(Stri sFrmat) _Fomat=sFormat; ublic rig getFrma() retn_somat; Tagupr实现了标签处理器要求的所有接口.这些方法本来没有做什么任何事,标签处理器开发人员重构了需要方法,允许基类处理调用

9、所有的其他的方法。标签处理器每一次被调用都会调setPageConte方法. 这个类为稍后便用简单的保存了enet参照。当JSP引擎遇到这个标签时会调用StrtTa方法。这个方法和第1个版本S页面的sritl处理了相同的事.他将结果写回给JpWrier,结果包括了先存储的geonext。所有写给spWter的内容,会被直接嵌入到响应页面。注意doSartTag只能抛出JsEcpti异常。如果发生写失败,那么原始IOxcein会被转化成一个Jspxcion重新抛出。这个方法会返回SIP_BOD,他告诉JS容器抛弃标签内容。标签处理器最后的两个方法是setormat和etFormat。机敏的读者应

10、该已经知道了他作用.他被网页容器用来设置标签属性值(后面进行更详细的讨论)。在这儿他们被用来设定日期格式属性和输出日期格式属性. 标签定义:L文件一个标签库描述符文件,或者TLD文件, 是一个ML文件。他用来描述标签库中的标签。以下是atTag标签的描述文件.?xml versi=1。encodg=ISO-889?1012/sp-version shor-amefirst/uri dscrptionSampe ag lbrary/desription ag medateae tagcassco。elucify.ti.ep20。DaeTagagclas boy-coteempybody-cone

11、nt decrpoPrint the atewth cope-in frmatecripion nafomat/ame requiredfalsereuird rtervaluealse/rtepvalue /tagli这些描述符提供了这个标签库的信息。他还提供了每一个标签的如标签名、处理器的类和标签描述的信息。这个文件被用来替换BN目录下的WR文件,为JSP页面使用这些标签提供参照。增加属性Noticetht e D abovdefnes an attrbutealedfoat hi is thestring assed tSipleDateFrmatto cotro how the date sprnte。 If formt attriute is present on a dae tag, th JSPnecals sFrmat on ehnd cls. trwe,he adercass esa daul frmaAttribute prvide a geat dlofctomizailit to ustom tags。 Foremple, te followng SP page usesthe formatttrte tfrmat th datein sveral diferenwayso the samepge: 注意上面这个D文件显示的属性调

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号