Evgeniy Strokin wrote:
This is exactly that I have. Also i asumed that I need
in ContactInfo.class something like this:
public Email getEmails(int index){
 return emails.toArray()[index];
}

For property:
model.currentPerson.contactInfo.emails[0].emailAddress

But I notised that Struts calls getEmails() for this
property instead of getEmails(0).
getEmails(0) never called actualy.

I don't know what to do)))

Thanks
Eugene


--- "Kandula, Sunita" <[EMAIL PROTECTED]> wrote:


Can you give code details of ContactInfo and Email
classes . I am assuming you will have something like the
following, basically no
indexed methods are required.
ContactInfo.class
/**
* @return
*/


   private Collection emails;
   public Collection getEmails() {
       return emails;
   }

   /**
    * @param collection
    */
   public void setEmails(Collection collection) {
       emails = collection;
   }


and your Email class should have following methods. public String getEmailAddress() { return emailAddress; }

/**
* @param string
*/
public void setEmailAddress(String string) {
  emailAddress = string;
}



-----Original Message-----
From: Evgeniy Strokin
[mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 15, 2004 2:40 PM
To: Struts Users Mailing List
Subject: RE: indexed property is not updated after
submit


Thanks, I think I'm getting close)) But your example gives me this exception: --------------------------- Invalid argument looking up property


model.currentPerson.contactInfo.emails[0].emailAddress

of bean form
---------------------------
Could you clue me in why is what?

Thanks,
Eugene

--- "Kandula, Sunita" <[EMAIL PROTECTED]> wrote:


Could be done like this:
<%@ taglib uri="/WEB-INF/struts-nested.tld"
prefix="nested" %>
<nested:iterate name="form"
property="model.currentPerson.contactInfo.emails"

        <nested:text property="emailAddress" />
</nested:iterate>



-----Original Message-----
From: Evgeniy Strokin
[mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 15, 2004 10:04 AM
To: [EMAIL PROTECTED]
Subject: indexed property is not updated after
submit


Hi, I have a problem: Struts config file has: <form-beans> <form-bean name="form" type="org.apache.struts.action.DynaActionForm"> <form-property name="model" type="com.mycomp.SecurityAdminModel"/> </form-bean> </form-beans>

On JSP I have:
<logic:iterate id="email"
property="model.currentPerson.contactInfo.emails"
name="form" >
<html:text property="emailAddress" name="email" </logic:iterate>


It generates folowing HTML:
<input type="text" name="email[0].emailAddress"
value="[EMAIL PROTECTED]">
<input type="text" name="email[1].emailAddress"
value="[EMAIL PROTECTED]">

But when I submit the form actual values in a bean
are
not updated. They are still the same.

This is my Bean:
package com.mycomp.securityadmin;
public class SecurityAdminModel implements
Serializable{

private Person currentPerson=null;
public Phone getPhone(int ind){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&
currentPerson.getContactInfo().getPhones()!=null

&&

               ind>=0 &&

ind<currentPerson.getContactInfo().getPhones().size())

           return


(Phone)currentPerson.getContactInfo().getPhones().toArray()[ind];

       else return null;
   }

public void setPhone(int ind, Phone phone){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&
currentPerson.getContactInfo().getPhones()!=null

&&

               ind>=0 &&

ind<currentPerson.getContactInfo().getPhones().size())

currentPerson.getContactInfo().getPhones().toArray()[ind]=phone;

   }

public Address getAddress(int ind){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&

currentPerson.getContactInfo().getAddresses()!=null

&&
               ind>=0 &&
               ind


<currentPerson.getContactInfo().getAddresses().size())

           return


(Address)currentPerson.getContactInfo().getAddresses().toArray()[ind];

       else return null;
   }

public void setAddress(int ind, Address adr){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&

currentPerson.getContactInfo().getAddresses()!=null

&&
               ind>=0 &&

ind<currentPerson.getContactInfo().getAddresses().size())

currentPerson.getContactInfo().getAddresses().toArray()[ind]=adr;

   }

public Email getEmail(int ind){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&
currentPerson.getContactInfo().getEmails()!=null

&&

               ind>=0 &&

ind<currentPerson.getContactInfo().getEmails().size())

           return


(Email)currentPerson.getContactInfo().getEmails().toArray()[ind];

       else return null;
   }

public void setEmail(int ind, Email email){
if(currentPerson!=null &&

currentPerson.getContactInfo()!=null

&&
currentPerson.getContactInfo().getEmails()!=null

&&

=== message truncated ===




__________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


.

I did it with ActionForm

public class yourForm extends ActionForm {

        ...

        public Email getEmail(int index) {
                return model.getEmail(index);
        }

        public void setEmail(int index, Email email) {
                model.setEmail(index, email);
        }

}

On post, execute setEmail(), because in html generates
<input type="text" name="email[0].emailAddress" >
Try with DynaForm.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to