You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@locus.apache.org on 2000/10/18 00:59:02 UTC

cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler TagBeginGenerator.java TagEndGenerator.java

pierred     00/10/17 15:59:01

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        TagBeginGenerator.java TagEndGenerator.java
  Log:
  Support for new JSP1.2 feature:
  New IteratorTag interface to support iteration without BodyContent
  
  TagBeginGenerator
  
  - The return value of doStartTag() is now checked against EVAL_BODY_BUFFERED
    instead of EVAL_BODY_TAG.
    EVAL_BODY_TAG is deprecated, and both have the same integer value
    so we only check against EVAL_BODY_BUFFERED.
  
  TagEndGenerator
  
  - doAfterBody() is now called if tag is an instance of IteratorTag (instead
    of if it is an instance of BodyTag)
  
  - The return value of doAfterBody() is now checked against EVAL_BODY_AGAIN
    instead of EVAL_BODY_TAG.
    EVAL_BODY_TAG is deprecated, and both have the same integer value
    so we only check against EVAL_BODY_AGAIN.
  
  Revision  Changes    Path
  1.5       +1 -1      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagBeginGenerator.java
  
  Index: TagBeginGenerator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagBeginGenerator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TagBeginGenerator.java	2000/10/11 19:35:17	1.4
  +++ TagBeginGenerator.java	2000/10/17 22:59:01	1.5
  @@ -347,7 +347,7 @@
                              " implements BodyTag, it can't return Tag.EVAL_BODY_INCLUDE\");");
               writer.popIndent();
           } else {
  -            writer.println("if ("+evalVar+" == BodyTag.EVAL_BODY_TAG)");
  +            writer.println("if ("+evalVar+" == BodyTag.EVAL_BODY_BUFFERED)");
               writer.pushIndent();
               writer.println("throw new JspTagException(\"Since tag handler "+tc.getTagHandlerClass()+
                              " does not implement BodyTag, it can't return BodyTag.EVAL_BODY_TAG\");");
  
  
  
  1.3       +7 -3      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagEndGenerator.java
  
  Index: TagEndGenerator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagEndGenerator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TagEndGenerator.java	2000/10/11 19:35:18	1.2
  +++ TagEndGenerator.java	2000/10/17 22:59:01	1.3
  @@ -63,6 +63,7 @@
   import javax.servlet.jsp.tagext.VariableInfo;
   import javax.servlet.jsp.tagext.TagData;
   import javax.servlet.jsp.tagext.Tag;
  +import javax.servlet.jsp.tagext.IterationTag;
   import javax.servlet.jsp.tagext.BodyTag;
   
   import org.xml.sax.Attributes;
  @@ -108,12 +109,15 @@
   
           Class tagHandlerClass =
   	    libraries.getTagCache(prefix, shortTagName).getTagHandlerClass();
  -        boolean implementsBodyTag = BodyTag.class.isAssignableFrom(tagHandlerClass);
  +        boolean implementsIterationTag = 
  +	    IterationTag.class.isAssignableFrom(tagHandlerClass);
  +        boolean implementsBodyTag = 
  +	    BodyTag.class.isAssignableFrom(tagHandlerClass);
   
   	writer.popIndent();
   
  -        if (implementsBodyTag)
  -            writer.println("} while ("+thVarName+".doAfterBody() == BodyTag.EVAL_BODY_TAG);");
  +        if (implementsIterationTag)
  +            writer.println("} while ("+thVarName+".doAfterBody() == BodyTag.EVAL_BODY_AGAIN);");
           else
               writer.println("} while (false);");