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]

Reply via email to