- 1、本文档共123页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J2EE开发讲座(绝密)
第一章:自定义标签 自定义标签的介绍 自定义标签的几种类型 自定义标签和JavaBean的区别 自定义标签的几个重要接口 TLD文件的简介 自定义标签的开发实例 自定义标签的介绍 1.从JSP1.1开始,就增加了标签库的支持,后来标签库在JSP1.2和JSP2.0中得到不断增强。 2.简单地讲,标签扩展是一个Java类,它是运行一个或两个接口的JavaBean.在JSP规范里,标签具有比JavaBean更丰富的运行时(Runtime)协议,它不仅可以非常紧密地和JSP的表示逻辑联系在一起,同时它也具有和普通JavaBean相同的业务逻辑处理能力。 3.标签扩展使得开发人员可以向JSP网页中添加大范围的新功能,并且通过一种直观的方式来调用,类似与标准操作。 4.为了理解标签语言,需要先理解以下几个概念: 自定义标签的介绍 ●标签名:每个标签都有一个名字,名字由前缀和后缀组成。如jsp:include,这里的jsp就是前缀,include就是后缀。前缀可以在JSP网页中声明,后缀在编写标签库时就确定了。 ●属性:标签可以由有属性,这些属性用于传递给标签处理程序。如jsp:param name=“xm” value=“admin”,这里的name和value就是属性。 ●嵌套:标签可以像HTML一样进行嵌套,嵌套可以是多重的,被包含的标签是子标签,上一级的标签是父标签。如jsp:param就是jsp:include的子标签,jsp:include就是jsp:param的父标签。 ●主体内容:它是指标签的起始和结束之间的所有内容。标签可以访问和管理它的主体内容。比如可以选择不显示主体内容。 ●脚本变量:标签除了在标签闭合前使用外,标签名还可以在标签结束后在Scriptlets之中作为变量使用。如jsp:useBean id=“conn”这里的id就可以在Scriptlets中引用。 自定义标签的几种类型 不带属性和主体的简单标签 带属性但不带主体的标签 带有主体和属性的标签 SimpleTag 与JavaBean的区别 相同点: 1.都是一个可重用的组件 2.都存放在类装载器(classes)目录下 不同点: 1.自定义标签可以与JSP页面通信;JavaBean不行,它只是一种数据模型. 2.自定义标签可以操纵JSP,标签可以显示数据,是JSP的一部分;JavaBean是被动的,等JSP来调用. 3.tld(标签描述符文件)文件只能放在WEB-INF目录或其子目录下; 自定义标签的几个重要接口 1.JspTag:所有标签都实现的接口。是标记接口。 2.Tag:它是传统的标签都必须实现的接口。 3.SimpleTag:是JSP2.0新增加的接口,代表简单的标签 4.IterationTag:直接父接口是Tag. 5.BodyTag:直接父接口是IterationTag. 标签库的核心接口和类的继承关系 自定义标签的几个重要接口 1).Tag接口常用的方法和常量: 常量: EVAL_BODY_INCLUDE(表示执行标签体的内容) SKIP_BODY (表示忽略标签体的内容) EVAL_PAGE(表示继续执行标签后的页面内容) SKIP_PAGE(表示停止执行标签后的页面内容) 方法: void setPageContext(PageContext pc):(表示设置页面上下文属性的方法) void setParent(Tag tag):如果自定义标签有父标签,则把父标签传给标签处理器,没有则把null传给标签处理器. Tag getParent():表示获取父标签的方法 int doStartTag():表示标签开始执行的方法 int doEndTag():表示标签结束执行的方法 void release():表示释放标签执行过程中占用的系统资源 自定义标签的几个重要接口 2).IterationTag接口,继承自Tag接口,常用的方法和常量: EVAL_BODY_AGAIN:表示可以再执行一次标签体 doAfterBody():表示再执行一次标签体的内容。 3).BodyTag接口,继承自IterationTag接口,常用的方法和常量: EVAL_BODY_BUFFERED:(表示把标签体放到缓冲区中,以便进一步处理). setBodyContent():表示设置Body对象的方法 doInitBody()(初始化Body对象). 这些方法的调用顺序如下: setPageContext()—setParent()—setters()—doStartTag()—doEndTag()—release(). TLD文件简介 1.如果JSP容器在转换时遇到了自定义标签,那么它就检
文档评论(0)