struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastián Gorgo <sgo...@frro.utn.edu.ar>
Subject Re: indexed property is not updated after submit
Date Thu, 16 Dec 2004 02:10:56 GMT
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" <skandula@ets.org> 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:evgeniy_strokin@yahoo.com]
>>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" <skandula@ets.org> 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:evgeniy_strokin@yahoo.com]
>>>Sent: Wednesday, December 15, 2004 10:04 AM
>>>To: user@struts.apache.org
>>>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="homer@simpson.com">
>>><input type="text" name="email[1].emailAddress"
>>>value="bart@simpson.com">
>>>
>>>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: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> .
> 
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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message