`

jsp tag标签 SKIP_BODY,EVAL_PAGE,EVAL_BODY_INCLUDE,EVAL_BODY_AGAIN返回值的各个含义及区别

    博客分类:
  • java
阅读更多

http://blog.csdn.net/achun2050/archive/2007/04/18/1568582.aspx

SKIP_BODY隐含0    :跳过了开始和结束标签之间的代码。  
EVAL_BODY_INCLUDE隐含1:将body的内容输出到存在的输出流中   
SKIP_PAGE隐含5  :  忽略剩下的页面。  
EVAL_PAGE隐含6:继续执行下面的页  
---------------------------------------------------------------  
 
 
doStartTag()和doEndTag()返回值是在Tag  Interface里定义的静态int  
 
SKIP_BODY隐含0      
 
Skip  body  evaluation.  Valid  return  value  for  doStartTag  and  doAfterBody.  跳过对body的处理。  
 
就是跳过了开始和结束标签之间的代码。  
 
   
 
EVAL_BODY_INCLUDE  隐含1    
 
Evaluate  body  into  existing  out  stream.  Valid  return  value  for  doStartTag.    
 
This  is  an  illegal  return  value  for  doStartTag  when  the  class  implements  BodyTag,  
 
   since  BodyTag  implies  the  creation  of  a  new  BodyContent.  
 
   将body的内容输出到存在的输出流中。包括是jsp代码,也可以被输出  
 
 SKIP_PAGE    隐含5      
 
 Skip  the  rest  of  the  page.  Valid  return  value  for  doEndTag.  
 
 忽略剩下的页面。  
 
EVAL_PAGE    隐含6  
 
Continue  evaluating  the  page.  Valid  return  value  for  doEndTag().  
 
 在doStartTag()方法中,若返回EVAL_BODY_INCLUDE就计算标签的body  
  若返回SKIP_BODY就不计算标签的body  
   
  在doEndTag()方法中,若返回EVAL_PAGE容器在标签结束时继续计算jsp页面的其它部分,  
  若返回SKIP_PAGE则在标签结束时停止计算jsp页面其他的部分。  
   
  当你实现了BodyTag接口时,也就是你进行带body标签的开发时,有doAfterBody()方法。  
  当返回EVAL_BODY_TAG时,表示继续计算一次BodyTag,直到返回SKIP_BODY才会调用doEndTag()方法在doStartTag()方法中,若返回EVAL_BODY_INCLUDE就计算标签的body  
  若返回SKIP_BODY就不计算标签的body   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

我查了一下,大部分的都说是  EVAL_BODY_BUFFERED 比 EVAL_BODY_INCLUDE 多执行了 public void setBodyContent(BodyContent arg0) 和  public void setBodyContent(BodyContent arg0) 这两个方法。还有其他的区别吗?

分享到:
评论

相关推荐

    jsp 定制标签(Custom Tag).docx

    - `doAfterBody()`: 当Body内容被处理后调用,返回值为`BodyTag.SKIP_BODY`或`BodyTag.EVAL_BODY_AGAIN`,前者表示结束标签,后者表示重新处理Body内容。 - `doEndTag()`: 控制Body内容后的处理,返回值与空Body...

    jsp自定义标签中的困扰

    如果标签不需要处理其内容,可以返回`Tag.EVAL_BODY_INCLUDE`,表示允许JSP引擎处理标签体;如果标签需要处理内容,返回`Tag.SKIP_BODY`则会跳过标签体。 2. **doInitBody()**:这个方法在`doStartTag()`返回`Tag....

    java 自定义标签

    1. `doStartTag()`:初始化标签,可以返回`SKIP_BODY`、`EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN/EVAL_BODY_BUFFERED`。 2. `doInitBody()`(仅在实现了`BodyTag`或`BodyTagSupport`时使用):进行标签体的一些初始化...

    自定义(jsp)标签

    1. **Tag**: 这是所有传统标签的父接口,它定义了两个核心方法 `doStartTag()` 和 `doEndTag()`,以及四个常量 `EVAL_BODY_INCLUDE`、`SKIP_BODY`、`EVAL_PAGE` 和 `SKIP_PAGE`。 - `doStartTag()`: 当JSP引擎遇到...

    Java web自定义标签知识.docx

    返回值可以是`EVAL_BODY_INCLUDE`、`SKIP_BODY`或`SKIP_PAGE`,决定是否继续处理标签体或跳过。 2. `doAfterBody()`:当标签体内容被处理后,这个方法会被调用,通常用于循环处理标签体。返回值同样有`EVAL_BODY_...

    JSTL自定义标签实例解析

    - `EVAL_BODY_INCLUDE`: 处理标签体,但忽略`setBodyContent()`和`doInitBody()`。 - `EVAL_BODY_AGAIN`: 对标签体进行循环处理。 2. **标签库描述文件(.tld)** - .tld文件是XML格式,用于定义标签库,包括...

    jsp 定制标签(Custom Tag)

    而doEndTag()方法返回Tag.EVAL_PAGE表示标签后的页面内容将继续被处理,返回Tag.SKIP_PAGE则表示不处理后续的页面内容。 对于带内容体的标签处理器类,除了doStartTag()和doEndTag()方法,还需要覆盖doAfterBody()...

    Taglib自定义标签

    - `EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN`:处理标签体并可能重复处理。 - `SKIP_PAGE`:停止当前页面的进一步处理,直接将结果返回给客户端。 - `EVAL_PAGE`:继续执行剩余的页面内容。 **标签库描述文件(....

    jsp程序设计考试题及答案.doc

    2. TagSupport类的dostart方法:在自定义JSP标签中,`dostart`方法的返回值决定本体(tag body)是否可见。`EVAL_BODY_INCLUDE`表示应该继续处理标签体,因此选项D正确,表示本体可见。 3. JavaBean规范:JavaBean...

Global site tag (gtag.js) - Google Analytics