You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Webb, Ed" <Ed...@news.xtremeinformation.com> on 2003/11/19 15:09:52 UTC
RE: Using a collection of Beans within an ActionForm [Solved]
Thanks very much, that was just the nudge in the right direction. I found
the http://jakarta.apache.org/struts/faqs/indexedprops.html page very
helpful. As I am using EL and the JSTL tags I found that creating a method:
public List getMedia(int index) { ... }
as that page suggested ("List-backed Indexed Properties") caused the
<c:forEach> tag to complain it couldn't find a getter for property media so
I had to create 2 methods:
public List getMedia() {
return media;
}
public MediaBean getMedium(int index) {
while(index >= media.size()) {
media.add(new MediaBean())
}
return (MediaBean)media.get(index);
}
and use this in the JSP:
<c:forEach varStatus="status" var="med" items="${emailalertForm.media}">
<tr>
<td><fmt:message key="${med.mediaName}" /></td>
<td><html:checkbox
property="medium[${status.index}].selected" /></td> </tr>
</c:forEach>
to get everything to display and return correctly.
Cheers,
Ed!
-----Original Message-----
From: Nicholas L Mohler [mailto:Nicholas_L_Mohler@raytheon.com]
Sent: 19 November 2003 12:45
To: Struts Users Mailing List
Subject: Re: Using a collection of Beans within an ActionForm
Ed,
You can find examples of this by searching the archive for indexed
properties.
[snip]
There are a few ways to do this. My getter method:
public CollectionBean getCollectionName(int index) {
while(index >= collectionName.size()) {
collectionName.add(new CollectionBean())
}
return (CollectionBean)collectionName.get(index);
}