- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6讲 自定义签库
第6讲 自定义标签库 纲要 自定义标签概述 创建一个简单的自定义标签示例 创建自定义标签的基本步骤 给自定义标签添加属性 自定义标签处理标签体 自定义标签概述 创建一个简单的自定义标签示例 下面以创建simple:greeting /标签为例进行说明,该标签的功能是能根据系统时间,进行不同的问候: Good morning(afternoon、evening、night等) 下面以创建simple:greetingAtt name=“…“/ 标签为例进行说明,该标签能够设置访问者name属性,并根据系统时间来问候来访问者。 有时我们需要对标签体的执行结果进行修改后再输出,这可以通过自定义标签来实现。例如: 继承BodyTagSupport类或实现BodyTag接口; doStartTag()返回EVAL_BODY_BUFFERED; 在doAfterBody()方法中处理标签体:调用getBodyContent()、BodyContent的有关方法,获取标签体内容,并将程序处理结果存放到输出流。 本讲小结 自定义标签概述:引入原因,使用格式,能够实现一定功能的原因,相关类与接口; 创建自定义标签的基本步骤:实现Tag接口的标签处理类生命周期,实现IterationTag接口的标签处理类生命周期,创建标签处理类的4个步骤,自定义标签的使用过程; 给自定义标签添加属性 自定义标签处理标签体 Java EE Core Java (1)为什么要自定义标签? 由于在实际开发中,这些标准操作标签往往不能满足用户的要求,就需要我们自己来制定标签。即自定义标签库。 (2)自定义标签的格式。其格式与标准操作标签相似,其特征为: 所有的自定义标签都有名称,标签名称应该用“:”分隔前缀与后缀; 标签可以有任意数目的属性,属性可以是可选的或必需的; 标签可以将其他子标签包含在内,包含标签被称为被包含标签的父标签; 自定义标签可以有主体内容,即为标签开始元素和结束元素之间的内容(包括子标签)。 simple.jsp web.xml greeting.tld GreetingTagHandler.java (2)自定义标签的使用形式 空标签(不含标签体和属性) 格式:前缀:标签名/ 或 前缀:标签名 /前缀:标签名 例如:simple:greeting / 带有属性的空标签 格式:前缀:标签名 属性1=“值1” 属性2=“值2”…/ 或 前缀:标签名属性1=“值1” 属性2=“值2”… /前缀:标签名 例如:simple:greetingAtt name=%=username%“/ 带有标签体的标签 格式:前缀:标签名 标签体 /前缀:标签名 例如:simple:greetingBodyTag %=hr%:%=min%:%=sec% /simple:greetingBodyTag 既带有属性又有标签体的标签 格式: 前缀:标签名属性1=“值1” 属性2=“值2”… 标签体 /前缀:标签名 例如:simple:greetingAtt name=%=username% 现在时间是:%=hr%:%=min%:%=sec% /simple:greetingAtt 请记住: 一个标签包含起始标记和结束标记; 在起始标记中可设置标签属性; 在起始标记和结束标记之间还可以有标签体; 执行顺序:起始标记、标签体、结束标记。 (3)自定义标签为什么能实现一定功能? 自定义标签实际上是一个实现了特定接口的Java类,它封装了一些常用功能,在运行时被相应的代码所替换。如下图所示: Java代码 …… JSP页面 前缀:标签名 属性=“值”… 标签处理类 替换 几个基本概念: 标签(Tag):让JSP页面实现特定功能, 通过标签可以使JSP网页变得简洁并且易于维护 ,是一种XML元素,它的名称和属性都对大小写敏感; 标签库(Tag library):由一系列功能相似、逻辑上互相联系的标签构成的集合,同一个标签库的“前缀”相同; 标签库描述文件(Tag Library Descriptor):是一个XML文件,它提供了标签库中类和JSP中标签引用的映射关系,也是一个配置文件,与web.xml类似; 标签处理类(Tag Handle Class):是一个Java类,这个类继承了TagSupport(或BodyTagSupport)类,也可能实现了Tag或其子接口,通过该类可以自已定义JSP标签的具体功能。 (4)自定义标签的类与接口:位于javax.servlet.jsp.tagext包 JspTag 接口 IterationTag接口 int doAfterBody() Tag 接口 void setPa
文档评论(0)