Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30465639
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2008-12-15 11:18:20

首先来看一下简单标签接口的方法以及它的生命周期
一、SimpleTag接口的方法
    1、doTag():void
    2、getParent():JspTag
    3、setJspBody(javax.servlet.jsp.tagext.JspFragment body):void
    4、setJspContext(javax.servlet.jsp.JspContext pc):void
    5、setParent(javax,servlet.jsp.tagext.JspTag tag):void
二、SimpleTag接口的声明周期
    1、每次遇到Jsp标签容器构造一个SimpleTag实例,这个构造函数没有参数。
    2、setJspContext()、setParent()只有当前的标签在另一个标签之内时才调用setParent()方法
    3、设置属性,调用每一个属性的setter方法
    4、setJspBody(javax.servlet.jsp.tagext.JspFragment body)
    5、doTag()所有标签的逻辑迭代和Body计算都在这个方法中
    6、return
下面是对带体标签的介绍
三、带Body的自定以标签
    1、必须实现Tag接口的doStartTag()和doEndTag()方法
    2、可以实现IterationTag接口的doAffterBody()方法
    3、可以实现BodyTag接口的doInitBody()和setBodyContent(javax.servlet.jsp.tagext.BodyContent bc)方法
    4、doStartTag()可以返回的值:
        A、SKIP_BODY 不处理标签体
        B、EVAL_BODY_INCLUDE 计算的体的结果被包含在out(JspWriter)中输出
        C、EVAL_BODY_BUFFERED 一个BodyContent对象被创建
    5、doEndTag()方法可以返回SKIP_PAGE或者EVAL_PAGE以确定是否继续计算其余的页面
    6、doAffterBody可以返回EVAL_BODY_AGAIN、SKIP_BODY以确定是否再次计算标签体
四、BodyTag的处理过程
    1、setPageContext(javax.servlet.jsp.PageContext pc):void
    2、setParent(javax.servlet.jsp.tagext.Tag tag):void
    3、doStartTag():int
    4、setBodyContext(BodyContext bc):void
    5、doInitBody():int
    6、doAffterBody():int
    7、doEndTag():int
    8、release():void


文章出处:

阅读(1987) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~