Try phone[0] and phone[1]

Steve


> -----Original Message-----
> From: Alexey N. Shananin [mailto:[EMAIL PROTECTED]
> Sent: June 24, 2003 3:26 AM
> To: Struts Users Mailing List
> Subject: Accessing indexed properties in DynaActionForm (1.1rc2)
>
>
> Hi!
> I found no answer in an archives, so I'm asking now.
>
> I've got an indexed property "phone", which has fields "num" and
> "pid"(phone ID)
> the generated HTML is:
> ----------------------------------------------------
>
> <tr><td>
> <input type="hidden" name="phone[1].pid" value="528078">
> <input type="text" name="phone[1].num" value="9795036"> (8)
> </td></tr>
>
> <tr><td>
> <input type="hidden" name="phone[2].pid" value="528738">
> <input type="text" name="phone[2].num" value="9563743"> (8)
> </td></tr>
>
> ----------------------------------------------------
> The DynaActionForm bean in struts-config.xml:
>
> ----------------------------------------------------
>         <form-bean name="EditRecordForm"
> type="org.apache.struts.action.DynaActionForm">
>             <form-property name="cid" type="java.lang.String"/>
>             <form-property name="name" type="java.lang.String"/>
>             <form-property name="phone" type="Phone[]"/>
>         </form-bean>
> ----------------------------------------------------
> The "Phone" class has 2 java.lang.String private members (num, pid) with
> public get/set methods.
>
> So, when I'm trying to call the Action's  execute  method,  I got the
> following exception occurs:
>
> ----------------------------------------------------
> javax.servlet.ServletException: BeanUtils.populate
>       at
> org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1098)
>       at
> org.apache.struts.action.RequestProcessor.processPopulate(RequestP
> rocessor.java:816)
>       at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor
> .java:254)
>       at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
>       at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(A
> pplicationFilterChain.java:247)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicati
> onFilterChain.java:193)
>       at
> ru.park.web.util.SetCharacterEncodingFilter.doFilter(SetCharacterE
> ncodingFilter.java:147)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(A
> pplicationFilterChain.java:213)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicati
> onFilterChain.java:193)
>       at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapp
> erValve.java:243)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardContextValve.invoke(StandardConte
> xtValve.java:190)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesVa
> lve.java:246)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
>       at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValv
> e.java:180)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispat
> cherValve.java:170)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValv
> e.java:170)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngine
> Valve.java:174)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.connector.http.HttpProcessor.process(HttpProce
> ssor.java:1027)
>       at
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor
> .java:1125)
>       at java.lang.Thread.run(Thread.java:536)
>
> *root cause*
>
> java.lang.ArrayIndexOutOfBoundsException
>       at java.lang.reflect.Array.get(Native Method)
>       at
> org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:296)
>       at
> org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(Prop
> ertyUtils.java:474)
>       at
> org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(Prop
> ertyUtils.java:428)
>       at
> org.apache.commons.beanutils.PropertyUtils.getNestedProperty(Prope
> rtyUtils.java:770)
>       at
> org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUti
> ls.java:801)
>       at
> org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
>       at
> org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
>       at
> org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1096)
>       at
> org.apache.struts.action.RequestProcessor.processPopulate(RequestP
> rocessor.java:816)
>       at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor
> .java:254)
>       at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
>       at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(A
> pplicationFilterChain.java:247)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicati
> onFilterChain.java:193)
>       at
> ru.park.web.util.SetCharacterEncodingFilter.doFilter(SetCharacterE
> ncodingFilter.java:147)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(A
> pplicationFilterChain.java:213)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicati
> onFilterChain.java:193)
>       at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapp
> erValve.java:243)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardContextValve.invoke(StandardConte
> xtValve.java:190)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesVa
> lve.java:246)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
>       at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValv
> e.java:180)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispat
> cherValve.java:170)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValv
> e.java:170)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:564)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngine
> Valve.java:174)
>       at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:566)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>       at
> org.apache.catalina.connector.http.HttpProcessor.process(HttpProce
> ssor.java:1027)
>       at
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor
> .java:1125)
>       at java.lang.Thread.run(Thread.java:536)
>
> ----------------------------------------------------
>
>
> What Im I doing wrong?? Is there a trouble in configuration or I should
> implement some more classes?
>
> Thanks!
>
> --
> Best regards,
>
> Alexey N. Shananin (mailto:[EMAIL PROTECTED])
> Java Developer, PARK.RU (http://www.park.ru)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>



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

Reply via email to