自定义标签库.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自定义标签库 自定义标签实际上是一个实现了特定接口的Java类,类定义了执行该标签操作的具体逻辑。然后再定义标签库描述文件,并把该文件导入到Web部署描述符中,该文件定义了一组标签与标签类的对应关系。最后就可以在JSP页面中导入并使用自定义的标签。在运行时,标签将被相应的代码所替换。标签的集合构成了标签库。 15.1自定义标签体系介绍 标签库API定义在javax.servlet.jsp.tagext包中,其中主要接口和类如图15-1所示。 15.1.1标签的形式 自定义标签四种形式: 空标签 title/ 带有属性的空标签 title length=”20” / 带有内容的标签 title JSP 程序设计 /title 带有内容和属性的标签 title length=”20” JSP 程序设计 / title 15.1.2标签类相关接口和类 1.Tag接口 javax.servlet.jsp.tagext.Tag接口定义了所有的传统标签处理器需要实现的基本方法。Tag接口中的方法如表15-1所示,Tag接口中定义的常量如表15-2所示。 传统标签的生命周期如图15-2所示 2.IterationTag接口 javax.servlet.jsp.tagext.IterationTag接口继承自Tag接口,它新增了一个方法和一个用做返回值的常量,主要用于控制对标签体的重复处理。新增的方法和常量如表15-3所示。 3.BodyTag接口 javax.servlet.jsp.tagext.BodyTag接口继承自IterationTag接口,它新增了两个方法和一个用做返回值的常量。实现该接口的标签处理器可以在其内部对标签体执行后的内容进行处理。新增的方法和常量如表15-4所示。 实现BodyTag接口的标签处理器的生命周期,如图15-3所示。 15.1.3 标签库描述文件 标签库描述文件定义了标签与标签类的对应关系,它是.XML格式的文档,简称TLD。TLD包含库的所有信息及库中的每个标签,TLD文件以扩展名.tld为后缀。当标签库部署在JAR文件中时,标签库描述文件必须放在META-INF目录或其子目录下;当标签库直接部署到Web应用程序中时,标签库描述文件必须放在WEB-INF目录或其子目录下,但不能放在/WEB-INF/classes或/WEB-INF/lib目录下 15.1.4 在Web部署描述符中引入标签库文件 容器在解析页面中的自定义标签的时候会到Web部署描述符中寻找该标签库的TLD文件,因此需要在web.xml把标签库文件引入 在web.xml的根元素web-app下通过jsp-config元素指定要引入的标签库。一个标签库对应一个taglib元素,对于一个应用来说可以存在多个标签库。其中taglib-uri元素指定在JSP页面中使用的自定义标签的URI名字,JSP页面通过此名字在JSP指令引入自定义标签;taglib-location元素指定了该名字所对应的TLD文件存放的位置。 15.1.6 标签在Web页面里的作用 自定义标签其实也是一个类,它封装了相应的逻辑功能,和JavaBean很类似,但是它们之间存在很大的区别:JavaBean通过提供接口供外部操作调用实现逻辑功能,而自定义标签是通过标签的形式为外部操作实现逻辑功能 15.2 传统标签的开发 15.2.1带属性标签的开发 第一步:编写标签处理类 第二步:在TLD文件MyTaglib.tld中配置myfont标签 第三步:在web.xml文件中配置标签库信息 第四步:编写测试页面attitudeTag.jsp 15.2.2 带Body标签的开发 BodyTag有一个实现类BodyTagSupport,开发带标签体的自定义标签时,直接继承类BodyTagSupport。 第一步:编写BodyTag.java 第二步:在TLD文件中配置标签 第三步:在web.xml文件中配置标签库信息。 第四步:编写测试页面 15.2.3 嵌套标签的开发 程序开发中,常常需要多个标签嵌套完成一个任务,这样标签就存在父子关系。 【例15-5】下面我们来开发这三个标签,其中switch为父标签,case和default为子标签。 第一步:开发标签三个处理器类SwitchTag.java、CaseTag.java和DefaultTag.java SwitchTag.java 第二步:在TLD文件MyTaglib.tld中配置switch、case和default标签 第三步:在web.xml文件中配置标签库信息。 第四步:编写测试页面switchTag.jsp 15.2.4迭代标签的开发 在程序开发中迭代输出集合中的元素

文档评论(0)

hmzhang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档