David -- Thanks very much for the reply. I grabbed a recent nightly build and am now using the indexed tag functionality; it is a very helpful addition. However, I still find myself needing to write custom Actions to handle manipulation of complex documents (i.e. adding another item to a nested collection, etc.). From Ted Husted's note, it sounds like this functionality is further down the road. If I end up writing anything useful along these lines I will let everyone know...
regards, --Steve > -----Original Message----- > From: David Winterfeldt [mailto:[EMAIL PROTECTED]] > Sent: Monday, October 22, 2001 2:00 PM > To: [EMAIL PROTECTED] > Subject: Re: Auto-generating ActionForms > [...] > > 2. Has anyone had any experience dealing with > > complex ActionForms, such as > > those derived from a XML Schema? It seems like the > > Struts taglibs are more > > about handling relatively flat documents; can anyone > > suggest other > > approaches for doing things like generating and > > handling forms with optional > > repeating groups, etc.? > You can have nested properties if you aren't aware of > that. So for a property you could have "address.name" > and this would be the equivalent of > getAddress().getName(). ("address[2].name" -> > retrieve object from array and then call getName()) > So this can let you have different beans nested inside > each other. > > Dave Hays has added the functionality of indexed > functionality for tags. This lets you reference > anything the logic:iterator tag can loop through and > generate the correct indexed property name > dynamically. It is in the nightly builds or you can > download it here. > http://www.husted.com/struts/resources/indexed-tags.htm > > > <logic:iterate id="listElement" name="newsscanForm" > property="listElementList" indexId="index"> > <td align="right" valign="center"> > <html:text indexed="true" name="listElement" > property="position" size="2" maxlength="2"/> > </td> > </logic:iterate> > > public List getListElementList(); > public Object getListElement(int index); > public void setListElement(int index, Object value); > > David