struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Graham" <dgraham1...@hotmail.com>
Subject Re: Help with Arrays of text fields
Date Thu, 25 Jul 2002 15:22:00 GMT
I've done something similar with hidden fields but have not tried to 
repopulate them.  I had several hidden fields named "required".  My 
ActionForm looked like this:

private String[] required;
public String[] getRequired(){return required;}
public void setRequired(String[] required){this.required=required;}

Struts successfully filled the string array with the values from each hidden 
field.

Hope this helps.

>From: David Wood <dwood@team345.com>
>Reply-To: "Struts Users Mailing List" <struts-user@jakarta.apache.org>
>To: Struts Users Mailing List <struts-user@jakarta.apache.org>
>Subject: Help with Arrays of text fields
>Date: Thu, 25 Jul 2002 11:02:15 -0400
>
>I have a form that has a variable number of text boxes on it.  I can 
>populate the form correctly, but on submit, struts is unable to put the 
>values back into the ActionForm.  To complicate things just a little, these 
>text boxes are defined as other classes, since they store a label, a 
>default value, and an enabled flag.
>
>So, I have an object called FlexField.  Flex field has the following 
>methods:
>  public String getName() { return _name;}
>  public String getValue() { return _value;}
>  public void setValue(String iNewValue) { _value = iNewValue;}
>  public boolean getEnabled() { return _enabled;}
>
>My ActionForm has an array of FlexFields and methods for setting the array 
>itself and individual values into the array.
>  public FlexField[] getFlexfields() { return _flexFields;}
>  public FlexField getFlexfields(int index) { return _flexFields[index];}
>  public void setFlexfields(FlexField[] iNewVal) { _flexFields = iNewVal;}
>  public void setFlexfields(int index, String iNewVal) { 
>_flexFields[index].setValue(iNewVal);}
>
>My Action creates an array of flex fields and sets it into the ActionForm 
>before redirecting to the jsp that shows these.
>
>My jsp puts out the list of flex fields into a table using the 
>logic:iterate tag:
><logic:iterate name="myForm" id="flexfield" property="flexfields" 
>type="com.temp.FlexField" >
>  <tr>
>    <td align="right"><bean:write name="flexfield" property="name"/></td>
>    <td>&nbsp;</td>
>    <td align="left">
>      <logic:equal name="flexfield" property="enabled" value="true">
>        <html:text name="myForm" property="flexfields" 
>value="<%=flexfield.getValue()%>"/>
>      </logic:equal>
>      <logic:equal name="flexfield" property="enabled" value="false">
>        <hidden name="conferenceForm" property="flexfields" 
>value="<%=flexfield.getValue()%>"/>
>        <bean:write name="flexfield" property="value"/>
>      </logic:equal>
>    </td>
>   </tr>
></logic:iterate>
>
>
>What I end up with is a bunch of text boxes and hidden fields that all have 
>the name "flexfields", which is the name of the property in my ActionForm. 
>But when I submit the form, I get an exception saying that it can't 
>populate the ActionForm.  If you have multiple text boxes with the same 
>name on a form, how does struts try to populate the ActionForm? Does it 
>just make X number of calls to setFlexfield(String input) without regard to 
>indexing the elements?
>
>I know this is a long and complicated example, but any help would be 
>appreciated.
>
>-- dave
>
>
>--
>To unsubscribe, e-mail:   
><mailto:struts-user-unsubscribe@jakarta.apache.org>
>For additional commands, e-mail: 
><mailto:struts-user-help@jakarta.apache.org>




_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx


--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>


Mime
View raw message