You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by suhas <su...@techmas.hcltech.com> on 2000/07/02 11:15:18 UTC

Re: Problems with iterate

Let us see if I got this .

getFirstName ( ) and getLastName( ) should be in the ContactData class and
not needed in the ActionForm

And in the Form bean one should have only getContactDataVector(int index)
method as u said .

In reset() method of the ActionForm u can instantiate the ContactData class
and vector of ContactData class if it is null  .
So that in the jsp file u can have contactDataVector[i].firstName and
contactDataVector[i].lastName fields .
I think when u submit <html:form> then automatically ur FormBean's
contactDataVector will be intialized
1. by calling reset method first where u intialize the vector of contactData
. Then
2. by populating the ActionForm data ( contactDataVector) with the values
from form fields

Please correct me if I'm wrong .

Suhas




----- Original Message -----
From: Niall Pemberton <ni...@btInternet.com>
To: <st...@jakarta.apache.org>
Sent: Sunday, July 01, 2001 11:56 PM
Subject: RE: Problems with iterate


> You need to do two things.
>
> First, you need to generate appropriate names for your input fields. If
you
> use the current Struts tags then all the occurances of your two fields in
> the example below will generate names of "firstName" and "lastName". What
> you want is to generate names in the format
"contactDataVector[x].firstName"
> and "contactDataVector[x].lastName", where x is the index number of the
> field. Dave Hay has posted a set of modified Struts tags which generate
> these names on Ted Husted's site:
>   http://www.husted.com/about/struts/resources.htm#extensions  - "Indexed
> Tags"
>
> Secondly you need to provide the appropriate getters/setters in your bean
> and ActionForm. Obviously in your bean you need setFirstName() and
> setLastName() methods - additionally you need the following getter in your
> ActionForm:
>
>   public ContactData getContactDataVector(int index) {
>
>      return (ContactData)(contactDataVector.get(index));
>
>   }
>
> Hope this helps.
>
>
> Niall
>
>
>
> > -----Original Message-----
> > From: Torsten Terp [mailto:torsten@terps.dk]
> > Sent: 01 July 2001 19:01
> > To: Struts user list
> > Subject: Problems with iterate
> >
> >
> > Hi,
> >
> > Sorry if this has been answered before, but i havent been able to
> > find an answer!
> >
> > Im using iterate to display a vector containg valueobjects, i.e.,
> >
> > <html:form action="showContacts">
> > <logic:iterate id="contacts" name="form" property="contactDataVector">
> > <html:hidden name="contacts" property="contactId"/>
> > <tr>
> >   <td width="150">
> >     <html:text name="contacts" property="firstName" size="20"/>
> >   </td>
> >   <td width="150">
> >     <html:text name="contacts" property="lastName" size="20"/>
> >   </td>
> > </tr>
> > ...
> > ...
> >
> > 'form' is my struts form bean, 'contactDataVector' is a vector of
> > 'contactData'
> > objects each containing (among others) the variables 'firstName'
> > and 'lastName'.
> >
> > There is no problem in displaying the data, all goes well, but
> > updating fields
> > in the form is not working, when i want to save the changes in
> > the struts action
> > the vector is null! I can see that making a variable 'firstName'
> > in the form, results
> > in a call to its setter method, i.e., i can make it work when
> > updating a single row,
> > but i cant manage to get the update to work on the actual
> > contactData objects in the
> > vector. ?!?!
> >
> > Any advices out there??
> >
> > ^terp
> >