I haven't tried this yet, but I do know that the Struts docs say you need to use the multibox tag instead of the checkbox tag if you want to use a string array.
http://struts.apache.org/userGuide/struts-html.html#multibox On Thu, 14 Oct 2004 11:36:29 -0700 (PDT), Caroline Jen <[EMAIL PROTECTED]> wrote: > I have a web page that displays check boxes for user > to make multiple selection: > [code] > <html-el:form action="/message/SelectAndMail"> > ...... > ...... > <td> > <html-el:checkbox > property="recipients[${status.index}].selected" /> > </td> > <td> > <html-el:hidden > property="recipients[${status.index}].emailAddress" /> > <c:out value="${recipientBean.emailAddress}" /> > </td> > ...... > ...... > </html:el> > [/code] > > For testing purpose, I made 6 selections of e-mail > addresses among all check boxes displayed, Those 6 > e-mail addresses are my friends'. > > Then, the SelectRecipientForm.java extends the > ActionForm class. In the ActionForm class, the > multiple selection of check boxes by users are > supposed to populate a String Array. > > However, the values of the selected check boxes are > not picked up. Here is the code of the > SelectRecipientsForm.java: > > import java.util.ArrayList; > import java.util.HashMap; > import java.util.Iterator; > import java.util.List; > import java.util.Map; > import javax.servlet.http.HttpServletRequest; > import org.apache.struts.action.ActionMapping; > import org.apache.struts.action.ActionForm; > > public class selectRecipientsForm extends ActionForm > { > // Map of RecipientField objects. > private Map recipientFieldMap = new HashMap(); > > private String[] recipients = new String[0]; > private String[] selectedEmailAddresses; > > public RecipientField getRecipients( int index ) > { > RecipientField recipientField = ( > RecipientField ) recipientFieldMap.get( new Integer( > index ) ); > if ( recipientField == null ) > { > recipientField = new RecipientField(); > recipientFieldMap.put( new Integer( index ), > recipientField ); > } > return recipientField; > } > > public String[] getSelectedEmailAddresses() > { > List theEmailAddressList = new ArrayList(); > > Iterator i = > recipientFieldMap.values().iterator(); > while( i.hasNext() ) > { > RecipientField recipientField = ( > RecipientField ) i.next(); > if ( recipientField.isSelected() ) > { > theEmailAddressList.add( "\"" + > recipientField.getEmailAddress() + "\"" ); > } > } > return ( String[] )theEmailAddressList.toArray( > new String[theEmailAddressList.size()] ); > } > > public void reset( ActionMapping mapping, > HttpServletRequest request) > { > recipients = new String[0]; > selectedEmailAddresses = new String[0]; > } > } > > Of course, I have this RecipientField.java: > > public class RecipientField > { > private String emailAddress = ""; > > public String getEmailAddress() > { > return emailAddress; > } > > public void setEmailAddress( String newValue ) > { > emailAddress = newValue; > } > > private boolean selected = false; > > public boolean isSelected() > { > return selected; > } > > public void setSelected( boolean newValue ) > { > selected = newValue; > } > } > > __________________________________ > Do you Yahoo!? > Yahoo! Mail Address AutoComplete - You start. We finish. > http://promotions.yahoo.com/new_mail > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]