org.apache.struts2.views.jsp.iterator

## Class IteratorGeneratorTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.apache.struts2.views.jsp.StrutsBodyTagSupport
      - - org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag

- All Implemented Interfaces:
    Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag

      public class IteratorGeneratorTag
      extends StrutsBodyTagSupport

  NOTE: JSP-TAG

  Generate an iterator based on the val attribute supplied.

  NOTE: The generated iterator will ALWAYS be pushed into the top of the stack, and poped at the end of the tag.
  - val* (Object) - the source to be parsed into an iterator
  - count (Object) - the max number (Integer, Float, Double, Long, String) entries to be in the iterator
  - separator (String) - the separator to be used in separating the val into entries of the iterator
  - var (String) - the name to store the resultant iterator into page context, if such name is supplied
  - converter (Object) - the converter (must extends off IteratorGenerator.Converter interface) to convert the String entry parsed from val into an object
  Example One:

       Generate a simple iterator
       <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
        <s:iterator>
            <s:property /><br/>
        </s:iterator>
       </s:generator>

  This generates an iterator and print it out using the iterator tag. Example Two:

       Generate an iterator with count attribute
       <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
        <s:iterator>
            <s:property /><br/>
        </s:iterator>
       </s:generator>

  This generates an iterator, but only 3 entries will be available in the iterator generated, namely aaa, bbb and ccc respectively because count attribute is set to 3 Example Three:

       Generate an iterator with var attribute
       <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," var="myAtt" />
       <%
        Iterator i = (Iterator) pageContext.getAttribute("myAtt");
        while(i.hasNext()) {
            String s = (String) i.next(); %>
            <%=s%> <br/>
       <%    }
       %>

  This generates an iterator and put it in the PageContext under the key as specified by the var attribute. Example Four:

       Generate an iterator with comparator attribute
       <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
        <s:iterator>
            <s:property /><br/>
        </s:iterator>
       </s:generator>

       public class GeneratorTagAction extends ActionSupport {

         ....

         public Converter getMyConverter() {
            return new Converter() {
                public Object convert(String value) throws Exception {
                    return "converter-"+value;
                }
            };
         }

         ...

       }

  This will generate an iterator with each entries decided by the converter supplied. With this converter, it simply add "converter-" to each entries.
  See Also:
    `IteratorGenerator`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_SEPARATOR`

    - ### Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### Fields inherited from class javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IteratorGeneratorTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `doEndTag()`
    `int` | `doStartTag()`
    `void` | `setConverter(String aConverter)`
    `void` | `setCount(String count)`
    `void` | `setSeparator(String separator)` @s.tagattribute required="true" type="String" description="the separator to be used in separating the val into entries of the iterator"
    `void` | `setVal(String val)` @s.tagattribute required="true" description="the source to be parsed into an iterator"
    `void` | `setVar(String var)`

    - ### Methods inherited from class org.apache.struts2.views.jsp.StrutsBodyTagSupport

      `findString, findValue, findValue, getBody, getStack, toString`

    - ### Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport

      `doAfterBody, doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### Methods inherited from class javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### Field Detail

    - #### DEFAULT_SEPARATOR

          public static final String DEFAULT_SEPARATOR

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### IteratorGeneratorTag

          public IteratorGeneratorTag()

  - ### Method Detail

    - #### setCount

          public void setCount(String count)

    - #### setSeparator

          public void setSeparator(String separator)

      @s.tagattribute required="true" type="String" description="the separator to be used in separating the val into entries of the iterator"
      Parameters:
        `separator` - the seperator

    - #### setVal

          public void setVal(String val)

      @s.tagattribute required="true" description="the source to be parsed into an iterator"
      Parameters:
        `val` - the value

    - #### setConverter

          public void setConverter(String aConverter)

    - #### setVar

          public void setVar(String var)

    - #### doStartTag

          public int doStartTag()
                         throws javax.servlet.jsp.JspException

      Specified by:
        `doStartTag` in interface `javax.servlet.jsp.tagext.Tag`
      Overrides:
        `doStartTag` in class `javax.servlet.jsp.tagext.BodyTagSupport`
      Throws:
        `javax.servlet.jsp.JspException`

    - #### doEndTag

          public int doEndTag()
                       throws javax.servlet.jsp.JspException

      Specified by:
        `doEndTag` in interface `javax.servlet.jsp.tagext.Tag`
      Overrides:
        `doEndTag` in class `javax.servlet.jsp.tagext.BodyTagSupport`
      Throws:
        `javax.servlet.jsp.JspException`

Copyright © 2000–2021 Apache Software Foundation. All rights reserved.