- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18单元 jsp自定义标签
从JSP1.1规范开始,JSP支持在JSP文件中使用自定义标签(JSP CUSTOME TAG LIBRARY)。用户可以把可重用的复杂的逻辑运算和事务或者特定的数据表示方式定义到自定义JSP标签中,提高代码的简洁性和可重用性。自定义标签在功能逻辑上与JavaBean类似,都是对Java代码的封装。自定义标签是可重用的组件代码,而JavaBean也是可重用的组件。自定义标签易于使用,且与XML样式标签类似,允许开发人员为复杂的操作提供逻辑名称。开发自定义JSP标签的基本步骤如下: (1)标签处理程序类:这是自定义标签的核心。 (2)标签库的描述文件(tld文件) (3)Web应用的web.xml文件 (4)自定义标签的使用 18.2.1 创建标签处理类 18.2.2 创建标签库描述文件TLD 18.2.3 JSP中使用自定义标签 首先要制作一个Java类,用来告诉JSP程序遇到这个标签后应该做什么。这个类必须实现javax.servlet.jsp.tagext.Tag接口。Tagext包中有两个类,即TagSupport和BodyTagSupport。这两个类提供了Tag接口的默认实现。在实际开发中,标签处理类通过继承javax.servlet.jsp.tagext.TagSupport或javax.servlet.jsp.tagext.BodyTagSupport这两个类,只需重新自定义那些需要自定义的行为的方法,从而简化了标签处理程序的开发。 TagSupport与BodyTagSupport的区别主要是标签处理类是否需要对标签体处理,如果不需要处理标签体就用TagSupport,否则就用BodyTagSupport。对标签体处理就是标签处理类要读取标签体的内容和改变标签体返回的内容。用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport。 TagSupport类:实现了Tag和InterationTag接口。这个类支持简单标签和带主体迭代的标签。TagSupport类的方法如下: doStartTag():JSP页面遇到开始标签时执行。如果用户希望在处理主体内容和结束标签之前进行其他处理,则可以重写该方法。doStartTag()的原型为:int doStartTag() throws JspException doEndTag():JSP页面遇到结束标签且在执行doStartTag()之后执行。其语法为:int doEndTag() throws JspException doAfterBody():允许用户有条件地重新处理标签的主体。在处理完标签的主体之后调用。如果标签没有主体,则不会调用doAffterBody方法。其语法为:int doAfterBody() throws JspException BodyTagSupport类:实现BodyTag接口,扩展TagSupport类。BodyTagSupport在TagSupport类的基础上又增加了以下两个方法: setBodyContent():设置标签体的内容。在执行doInitBody()方法之前执行此方法。其语法为:void setBodyContent(BodyContent bc) doInitBody():用于准备处理页面主体。在setBodyContent()方法之后被调用。其语法为:void doInitBody() throws JspException 从流程图可以看出,是否对标签体进行处理是由doStartTag()方法返回值决定的。如果doStartTag()方法返回EVAL_BODY_BUFFERED则处理标签体,否则执行doEndTag()方法。下面以生成一个随机验证码的标签为例,说明如何创建自定义标签。 例18-1创建一个自定义标签,此标签产生随机验证码。 程序清单:自定义标签处理类ch18\IdentifyingTag.java 这个标签处理类继承自BodyTagSupport类,由于此标签功能较简单,只是重写了doStartTag()方法,而没有对标签体内容的处理。在doStartTag()方法中调用Random类的实例生成一个4位数的随机数,并通过pageContext对象获得输出流,将随机数输出到页面上 TLD文件是一个XML文件,为JSP引擎提供有关自定义标签及其实现位置的元信息。TLD文件必须以扩展名.tld为后缀,文件保存在WEB-INF目录或它的子目录中。TLD文件可以有多个元素,其中主要的有3大类: taglib:标签库元素,是TLD文件的根元素; tag:标签元素,用于定义标签库中某个具体的标签; attrib
您可能关注的文档
- 第 二十二单元 非货币性资产交换.ppt
- 第 9 单元 差错控制编码.ppt
- 必修四+三角函数的周期性.ppt
- 八、大气的垂直分层与对流层大气的热状况.ppt
- 八年级英语下module8 public holidays课件外研版.ppt
- 八年级数学 多项式课件 北师大版.ppt
- 八年级上册物理_____光的折射课件.ppt
- 必修一 第二单元 基本初等函数(ⅰ) 对数函数及其性质 指数函数与对数函数的关系.ppt
- 八年级物理第五单元电流与电路.ppt
- 第01单元 序列的统计量、检验和分布.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)