Description

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.

Parameters

Name

Required

Default

Type

Description

count false   Integer the max number entries to be in the iterator
separator true   String the separator to be used in separating the val into entries of the iterator
val true   Object/String the source to be parsed into an iterator
converter false   com.opensymphony.webwork.util.IteratorGenerator.Converter the converter to convert the String entry parsed from val into an object
id false   String the id to store the resultant iterator into page context, if such id is supplied

Examples

Example One:
<pre>
Generate a simple iterator
<ww:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
<ww:iterator>
	<ww:property /><br/>
</ww:iterator>
</ww:generator>
</pre>
This generates an iterator and print it out using the iterator tag.

Example Two:
<pre>
Generate an iterator with count attribute
<ww:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
<ww:iterator>
	<ww:property /><br/>
</ww:iterator>
</ww:generator>
</pre>
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:
<pre>
Generate an iterator with id attribute
<ww:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," id="myAtt" />
<%
	Iterator i = (Iterator) pageContext.getAttribute("myAtt");
	while(i.hasNext()) {
		String s = (String) i.next(); %>
		<%=s%> <br/>
<% 	}
%>
</pre>
This generates an iterator and put it in the PageContext under the key as specified
by the id attribute.


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


public class GeneratorTagAction extends ActionSupport {

  ....

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

  ...

}
</pre>
This will generate an iterator with each entries decided by the converter supplied. With
this converter, it simply add "converter-" to each entries.