- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《jsp自定义标签》.doc
一、JSP自定义标签简介标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的标准JSP标签是用来调用JavaBean组件的操作,处理定向请求以简化JSP页面开发与维护。JSP技术提供了一种封装其它动态类型的机制——自定义标签,它扩展了JSP语言。自定义标签通常发布在标签库中,该库定义了一个自定义标签集并包含实现标签的对象。自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时被转化为servlet,标签转化为对称为tag handler的对象的操作。接着当servlet执行时Web container调用那些操作。
?
二、两种标签可以定义两种类型的标签: javax.servlet.jsp.tagext.Tag javax.servlet.jsp.tagext.BodyTag
有标签体的标签必须实现 BodyTag 接口。
Html代码
jsptag:map?scope=“session”?name=“tagMap”??
??body ??
/jsptag:map??
jsptag:map scope=“session” name=“tagMap”
body
/jsptag:map
?也可能没有标签体:
Html代码
jsptag:map/??
jsptag:map/
?无标签体的简单标签可以实现 Tag 接口。
?
三、标签处理程序 int doStartTag() throws JspException处理开始标签int doEndTag() throws JspException处理结束标签Tag getParent()/void setParent(Tag t)获得/设置标签的父标签void setPageContext(PageContext pc) pageContext 属性的 setter 方法void release() 释放获得的所有资源
?
doStartTag()和doEndTag()方法的返回值说明:SKIP_BODY??????表示不用处理标签体,直接调用doEndTag()方法。SKIP_PAGE??????忽略标签后面的jsp(SUN企业级应用的首选)内容。EVAL_PAGE??????处理标签后,继续处理jsp(SUN企业级应用的首选)后面的内容。EVAL_BODY_BUFFERED?表示需要处理标签体,且需要重新创建一个缓冲(调用setBodyContent方法)。EVAL_BODY_INCLUDE??表示在现有的输出流对象中处理标签体,但绕过setBodyContent()和doInitBody()方法EVAL_BODY_AGAIN???? 对标签体循环处理。(存在于javax.servlet.jsp.tagext.IterationTag接口中)
?
实现javax.servlet.jsp.tagext.Tag接口扩展javax.servlet.jsp.tagext.TagSupport类TagSupport 类定义了 get/setParent() 和 setPageContext(),这与所有标签处理程序几乎相同。get/setParent() 方法允许标签嵌套。TagSupport 类还定义了一个可以被子类使用的 pageContext 实例变量 (protected PageContext pageContext),这个变量是由 setPageContext() 方法设置的。
?
在创建自定义标签之前,需要创建一个 标签处理程序。标签处理程序是一个执行自定义标签操作的 Java 对象。在使用自定义标签时,要导入一个 标签库 —— 即一组标签/标签处理程序对。通过在 Web 部署描述符中声明库导入它,然后用指令 taglib 将它导入 JSP 页。
Html代码
%@?taglib?uri=firstTag?prefix=my%??
%@ taglib uri=firstTag prefix=my%
?
如果 JSP 容器在转换时遇到了自定义标签,那么它就检查 标签库描述符(tag library descriptor) (TLD) 文件以查询相应的标签处理程序。TLD 文件对于自定义标签处理程序,就像 Web 部署描述符对于 servlet 一样。
在运行时,JSP 页生成的 servlet 得到对应于这一页面所使用的标签的标签处理程序的一个实例。生成的 servlet 用传递给它的属性初始化标签处理程序。 标签处理程序实现了 生存周期 方法。生成的 servlet 用这些方法通知标
您可能关注的文档
- 《GB5768-2016道路交通标志和标线第1部分》.pdf
- 《GB5768.1-2016道路交通标志和标线 第1部分:总则》.pdf
- 《GB7258-2016《附录H典型车型车身反光标识粘贴示例及要求》》.doc
- 《GB8567软件设计国家标准》.pdf
- 《GB9113-flange法兰标准》.pdf
- 《GB9119-2016国家法兰标准》.doc
- 《GBJ 6-86 厂房建筑模数协调标准》.pdf
- 《GBJ144-90 工业厂房可靠性鉴定标准》.pdf
- 《GBJ148-90_电气装置安装工程电力变压器、油浸电抗器、互感器施工及验收规范》.doc
- 《GBJ148电气装置安装工程电力变压器、油浸电抗器、互感器施工及验收规范》.doc
文档评论(0)