Hello Ellen,
You are speak about indexed properties. It can be defined by two ways
1. One method for get and set operations
public String[] getSomeProperty() {}
2. Two methods
public String getProperty( int index ) {}
public void setProperty( int index, String value ) {}
Friday, June 08, 2001, 9:39:18 PM, you wrote:
EL> Question on the ActionForm design for dynamic data?I have scoured this list
unsuccessfully for an answer, and this email seemed the best starting point so I am
responding to it with the question
EL> I have:
>>From what I can tell, this only explains how to iterate over a collection to create
>a form with a dynamic number of rows. What I cannot find an answer to is how does
>the ActionForm need to be set
>>up to handle population with the input field values from those rows when this form
>is submitted? Does it simply need a "public void setCustomerContacts(Vector
>customerContacts)"? Will Struts then
>>populate the Vector with CustomerContact objects? Or does it need set() methods to
>accept Vectors of each individual column's values?
EL> Thanks,
EL> Ellen
EL> ----- Original Message -----
EL> From: Jeff Trent
EL> To: [EMAIL PROTECTED]
EL> Sent: Sunday, May 20, 2001 5:11 AM
EL> Subject: Re: Question on the ActionForm design for dynamic data?
EL> (1) Have a Vector / Collection of contributors (ie. getContributors()) belonging
to your form. Inside that function, check to see if you need more rows by using code
similar to the following:
EL> public Vector getCustomerContacts()
EL> {
EL> CustomerContact lastCustomerContact =
(CustomerContact)this.customerContacts.lastElement();
EL> if (!lastCustomerContact.isEmpty())
// is this slot being used?
EL> this.customerContacts.addElement(new CustomerContact()); //
always have one available slot at the end of the matrix
EL> return this.customerContacts;
EL> }
EL> (2) Do not use the reset() method.
EL> (3) On your JSP, use code like this:
EL> <% int i = 0; %>
EL> <logic:iterate id="customerContact" name="adminUpdateProfileForm"
property="customerContacts">
EL> <tr>
EL> <td class="smallFont"><input type='text' name="customerContact[<%= i
%>].contactName" value="<%=
((com.domain.project.CustomerContact)customerContact).getContactName() %>"></td>
EL> <td class="smallFont"><input type='text' name="customerContact[<%= i
%>].contactTitle" value="<%=
((com.domain.project.CustomerContact)customerContact).getContactTitle() %>"></td>
EL> <td class="smallFont"><input type='text' name="customerContact[<%= i
%>].contactPhone" value="<%=
((com.domain.project.CustomerContact)customerContact).getContactPhone() %>"></td>
EL> </tr>
EL> <% i++; %>
EL> </logic:iterate>
EL> (4) Have a button on the form "Add more rows" in which case the form posts to
itself and will cause a new row to be added at the bottom of the grid.
EL> Hope this help,
EL> Jeff
EL> ----- Original Message -----
EL> From: Joyce Tang
EL> To: [EMAIL PROTECTED]
EL> Sent: Saturday, May 19, 2001 11:28 PM
EL> Subject: Question on the ActionForm design for dynamic data?
EL> Here is the situation.
EL> I am developing a system to maintain a contribution plan. I need to input the
plan information first and add unlimited number of contributors, specifying each share
of the plan. So there
EL> will be a page with contribution plan information and a list of all the
contributors. The information you can edit on this page is the percentage of share of
each contributor. Validation rules
EL> are: share need to add up to 100 and share figure is an integer between 0 and 100.
Since the number of contributors is unknown in advance, how should I design the
ActionForm?
EL> Thanks a lot,
EL> Joyce
--
Best regards,
Oleg mailto:[EMAIL PROTECTED]