struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elankath, Tarun (Cognizant)" <>
Subject RE: Help with Arrays of text fields
Date Thu, 25 Jul 2002 15:50:44 GMT
Please correct me if I am wrong but I think all the setters in your form
beans need to take Strings as parameters.

I don't think Struts provides a way as yet to convert Strings into objects.
I have got to check whether 1.1 addresses this issue.

Everybody in Struts (except guys who did cgi programming) trips over this. I
wonder why can't they they explicitly mention this in the ActionForm


-----Original Message-----
From: David Graham []
Sent: Thursday, July 25, 2002 8:52 PM
Subject: Re: Help with Arrays of text fields

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


Hope this helps.

>From: David Wood <>
>Reply-To: "Struts Users Mailing List" <>
>To: Struts Users Mailing List <>
>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 
>  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) { 
>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" 
>      </logic:equal>
>      <logic:equal name="flexfield" property="enabled" value="false">
>        <hidden name="conferenceForm" property="flexfields" 
>        <bean:write name="flexfield" property="value"/>
>      </logic:equal>
>    </td>
>   </tr>
>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 
>-- dave
>To unsubscribe, e-mail:   
>For additional commands, e-mail: 

MSN Photos is the easiest way to share and print your photos:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message