网站大量收购独家精品文档,联系QQ:2885784924

自定义JSP标签.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自定义JSP标签

自定义JSP标签 自定义标签技术是在JSP1.1版本中才出现的,它允许开发人员创建客户化的标签,并且在JSP文件中使用这些标签,这样可以使JSP代码更加简洁。这些可重用的标签能处理复杂的逻辑运算和事务,或者能定义JSP网页的输出内容和格式。 本次课将结合具体的范例,详细介绍自定义标签的创建过程,以及它在JSP文件中的使用方法。 1自定义JSP标签简介 JSP标签包括以下几种形式。 (1)主体内容和属性都为空的标签,例如: mm:hello/ mm:hello/mm:hello (2)包含属性的标签,例如: mm:message key=”hello.hi”/ (3)包含主体内容的标签,例如: mm:greetingHow are you./mm:greeting 以上mm:greeting称为标签的起始标志,/mm:greeting称为标签的结束标志,两个标签之间的内容“How are you.”称为标签主体。 (4)包含属性和主体内容的标签,例如: mm:greeting username=”Tom” How are you./mm:greeting (5)嵌套的标签,例如: mm:greeting c:choosec:when/c:when/c:choose mm:user name=”Tom” age=”18”/ /mm:greeting 以上外层标签mm:greeting称为父标签,内层标签mm:user称为子标签。 为了便于组织和管理标签,可以把一组功能相关的标签放在同一个标签库中。开发包含自定义标签的标签库包括以下步骤: (1)创建自定义标签的处理类(Tag Handler Class)。 (2)创建TLD标签库描述文件(Tag Library Descriptor)。 假定甲方开发了重用性比较高的标签库,那么除了甲方本身的Web应用可以使用它,其他方(如乙方)也可以使用它。JSTL Core标签库的使用介绍了如何在Web应用中使用由第三方提供的JSP标准标签库(JSTL)。 本次课将按照如下步骤在Web应用中使用标签库: (1)把标签处理类及相关类的class文件存放在WEB-INF/classes目录下。 (2)把TLD标签库描述文件存放在WEB-INF目录或者其自定义的子目录下。 (3)在web.xml文件中声明所引用的标签库。 (4)在JSP文件中使用标签库中的标签。 2JSP Tag API Servlet容器在运行JSP文件时,如果遇到自定义标签,就会调用这个标签的处理类(Tag Handler Class)的相关方法。标签处理类可以继承JSP Tag API中的TagSupport类或者BodyTagSupport类。 JSP Tag API位于javax.servlet.jsp.tagext包中,图13-1是其中的主要接口和类的类框图。 图13-1 JSP Tag API 2.1JspTag接口 所有的标签处理类都要实现JspTag接口。这个接口只是一个标识接口,没有任何方法,主要是作为Tag和SimpleTag接口的共同接口。在JSP2.0以前,所有的标签处理类都要实现Tag接口,实现该接口的标签称为传统标签(Classic Tag)。JSP2.0提供了SimpleTag接口,实现该接口的标签称为简单标签(Simple Tag)。本章将介绍传统标签的用法。 2.2Tag接口 Tag接口定义了所有传统标签处理类都要实现的基本方法,包括以下几种。 setPageContext(PageContext pc):由Servlet容器调用该方法,向当前标签处理对象(即Tag对象)传递当前的PageContext对象。 setParent(Tag t):由Servlet容器调用该方法,向当前Tag对象传递父标签的Tag对象。 getParent():返回Tag类型的父标签的Tag对象。 release():当Servlet容器需要释放Tag对象占用的资源时,会调用此方法。 doStartTag():当Servlet容器遇到标签的起始标志时,会调用此方法。doStartTag()方法返回一个整数值,用来决定程序的后续流程。它有两个可选值,即Tag.SKIP_BODY和Tag.EVAL_BODY_INCLUDE。Tag.SKIP_BODY表示标签之间的主体内容被忽略,Tag.EVAL_BODY_INCLUDE表示标签之间的主体内容被正常执行。例如对于以下代码: prefix:mytag Hello World …… /prefix:mytag 假若mytag标签的处理对象的doStartTag()方法返回Tag.SK

文档评论(0)

ranfand + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档