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
documentation.
Tarun
-----Original Message-----
From: David Graham [mailto:[EMAIL PROTECTED]]
Sent: Thursday, July 25, 2002 8:52 PM
To: [EMAIL PROTECTED]
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
field.
Hope this helps.
>From: David Wood <[EMAIL PROTECTED]>
>Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>To: Struts Users Mailing List <[EMAIL PROTECTED]>
>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> </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:[EMAIL PROTECTED]>
>For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
This e-mail and any files transmitted with it are for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply e-mail and
destroy all copies of the original message.
Any unauthorised review, use, disclosure, dissemination, forwarding, printing or
copying of this email or any action taken in reliance on this e-mail is strictly
prohibited and may be unlawful.
Visit us at http://www.cognizant.com
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>