This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • generator
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »



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.


Dynamic Attributes Allowed:








converter false false org.apache.struts2.util.IteratorGenerator.Converter The converter to convert the String entry parsed from val into an object
count false false Integer The max number entries to be in the iterator
separator true false String The separator to be used in separating the val into entries of the iterator
val true false String The source to be parsed into an iterator
var false false String The name to store the resultant iterator into page context, if such name is supplied


Error rendering macro 'code': Invalid value specified for parameter 'java.lang.NullPointerException'
Example One:
Generate a simple iterator
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
     <s:property /><br/>
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:property /><br/>
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); %>
     <%=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:property /><br/>

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.
  • No labels