martinc     01/06/13 21:24:28

  Modified:    doc      Tag: STRUTS_1_0_BRANCH struts-logic.xml
               src/share/org/apache/struts/taglib/logic Tag:
                        STRUTS_1_0_BRANCH IterateTag.java IterateTei.java
  Log:
  Add a new attribute, 'indexId', which is used to expose the current index,
  at each iteration, as a scripting variable. The attribute names the desired
  scripting variable.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.1   +10 -0     jakarta-struts/doc/struts-logic.xml
  
  Index: struts-logic.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/struts-logic.xml,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- struts-logic.xml  2001/05/09 19:31:02     1.6
  +++ struts-logic.xml  2001/06/14 04:24:26     1.6.2.1
  @@ -465,6 +465,16 @@
       </attribute>
   
       <attribute>
  +      <name>indexId</name>
  +      <required>false</required>
  +      <rtexprvalue>true</rtexprvalue>
  +      <info>
  +      <p>The name of a page scope JSP bean that will contain the current
  +      index of the collection on each iteration.</p>
  +      </info>
  +    </attribute>
  +
  +    <attribute>
         <name>length</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.1  +22 -4     
jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java
  
  Index: IterateTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v
  retrieving revision 1.11
  retrieving revision 1.11.2.1
  diff -u -r1.11 -r1.11.2.1
  --- IterateTag.java   2001/04/29 01:26:19     1.11
  +++ IterateTag.java   2001/06/14 04:24:27     1.11.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v 
1.11 2001/04/29 01:26:19 craigmcc Exp $
  - * $Revision: 1.11 $
  - * $Date: 2001/04/29 01:26:19 $
  + * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v 
1.11.2.1 2001/06/14 04:24:27 martinc Exp $
  + * $Revision: 1.11.2.1 $
  + * $Date: 2001/06/14 04:24:27 $
    *
    * ====================================================================
    *
  @@ -88,7 +88,7 @@
    * or a Map (which includes Hashtables) whose elements will be iterated over.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.11 $ $Date: 2001/04/29 01:26:19 $
  + * @version $Revision: 1.11.2.1 $ $Date: 2001/06/14 04:24:27 $
    */
   
   public class IterateTag extends BodyTagSupport {
  @@ -188,6 +188,20 @@
   
   
       /**
  +     * The name of the scripting variable to be exposed as the current index.
  +     */
  +    protected String indexId = null;
  +
  +    public String getIndexId() {
  +     return (this.indexId);
  +    }
  +
  +    public void setIndexId(String indexId) {
  +     this.indexId = indexId;
  +    }
  +
  +
  +    /**
        * The length value or attribute name (<=0 means no limit).
        */
       protected String length = null;
  @@ -366,6 +380,8 @@
                   pageContext.setAttribute(id, element);
            lengthCount++;
               started = true;
  +            if (indexId != null)
  +                pageContext.setAttribute(indexId, new Integer(getIndex()));
            return (EVAL_BODY_TAG);
           } else
               return (SKIP_BODY);
  @@ -397,6 +413,8 @@
               else
                   pageContext.setAttribute(id, element);
            lengthCount++;
  +            if (indexId != null)
  +                pageContext.setAttribute(indexId, new Integer(getIndex()));
            return (EVAL_BODY_TAG);
        } else
            return (SKIP_BODY);
  
  
  
  1.4.2.1   +24 -11    
jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTei.java
  
  Index: IterateTei.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTei.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- IterateTei.java   2001/02/12 21:49:56     1.4
  +++ IterateTei.java   2001/06/14 04:24:27     1.4.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTei.java,v 
1.4 2001/02/12 21:49:56 craigmcc Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/02/12 21:49:56 $
  + * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTei.java,v 
1.4.2.1 2001/06/14 04:24:27 martinc Exp $
  + * $Revision: 1.4.2.1 $
  + * $Date: 2001/06/14 04:24:27 $
    *
    * ====================================================================
    *
  @@ -73,7 +73,7 @@
    * tag, identifying the scripting object(s) to be made visible.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.4 $ $Date: 2001/02/12 21:49:56 $
  + * @version $Revision: 1.4.2.1 $ $Date: 2001/06/14 04:24:27 $
    */
   
   public class IterateTei extends TagExtraInfo {
  @@ -87,13 +87,26 @@
           String type = data.getAttributeString("type");
           if (type == null)
               type = "java.lang.Object";
  -
  -     return new VariableInfo[] {
  -       new VariableInfo(data.getAttributeString("id"),
  -                        type,
  -                        true,
  -                        VariableInfo.NESTED)
  -     };
  +        VariableInfo typeInfo = new VariableInfo(
  +                data.getAttributeString("id"),
  +             type,
  +             true,
  +             VariableInfo.NESTED);
  +
  +        String indexId = data.getAttributeString("indexId");
  +        VariableInfo indexIdInfo = null;
  +        if (indexId != null)
  +            indexIdInfo = new VariableInfo(
  +                indexId,
  +             "java.lang.Integer",
  +             true,
  +             VariableInfo.NESTED);
  +
  +        if (indexIdInfo == null) {
  +            return new VariableInfo[] { typeInfo };
  +        } else {
  +            return new VariableInfo[] { typeInfo, indexIdInfo };
  +        }
   
       }
   
  
  
  

Reply via email to