WebWork 2 : Iteration Tags
This page last changed on Nov 30, 2004 by jcarreira.
Iterator will iterate over a value. An iterable value can be either of: java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, array. Example:<ww:iterator value="days">
<p>day is: <ww:property/></p>
</ww:iterator>
<ww:bean name="com.opensymphony.webwork.example.IteratorExample" id="it"> <ww:param name="day" value="'foo'"/> <ww:param name="day" value="'bar'"/> </ww:bean> <table border="0" cellspacing="0" cellpadding="1"> <tr> <th>Days of the week</th> </tr> <ww:iterator value="#it.days" status="rowstatus"> <tr> <ww:if test="#rowstatus.odd == true"> <td style="background: grey"><ww:property/></td> </ww:if> <ww:else> <td><ww:property/></td> </ww:else> </tr> </ww:iterator> </table> The next example will further demonstrate the use of the status attribute, using a DAO obtained from the action class through OGNL, iterating over groups and their users (in a security context). The last() method indicates if the current object is the last available in the iteration, and if not, we need to seperate the users using a comma: <webwork:iterator value="groupDao.groups" status="groupStatus"> <tr class="<webwork:if test="#groupStatus.odd == true ">odd</webwork:if><webwork:else>even</webwork:else>"> <td><webwork:property value="name" /></td> <td><webwork:property value="description" /></td> <td> <webwork:iterator value="users" status="userStatus"> <webwork:property value="fullName" /><webwork:if test="!#userStatus.last">,</webwork:if> </webwork:iterator> </td> </tr> </webwork:iterator> The next example iterates over a an action collection and passes every iterator value to another action. <ww:action name="entries" id="entries"/> <ww:iterator value="#entries.entries" > <ww:property value="name" /> <ww:property /> <ww:push value="..."/> <ww:action name="edit" id="edit" > <ww:param name="entry" value="[0]" /> </ww:action> </ww:iterator> The trick here lies in the use of the '[:0]' operator. It takes the current iterator value and passes it on to the edit action. Using the '[:0]' operator has the same effect as using <ww:property />. (The latter, however, does not work from inside the param tag). |
![]() |
Document generated by Confluence on Dec 14, 2004 16:36 |