Take a look at http://struts.apache.org/faqs/indexedprops.html http://www.developer.com/java/other/article.php/2233591 http://wiki.apache.org/struts/StrutsCatalogLazyList
Also, search the archives (like http://marc.theaimsgroup.com/?l=struts-user ) for "lazylist" to get ideas on approaches to dealing with dynamically sized form fields. Hubert On 4/20/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > I'm browsing thru the source code... any help would be extremely welcomed > ! > > In addition this is the dump: > > [20/04/05 13:10:31:116 EDT] 67e967e9 WebGroup E SRVE0026E: [Servlet > Error]-[BeanUtils.populate]: java.lang.ArrayIndexOutOfBoundsException > at java.lang.Throwable.<init>(Throwable.java) > at java.lang.Throwable.<init>(Throwable.java) > at > java.lang.ArrayIndexOutOfBoundsException.<init>(ArrayIndexOutOfBoundsException.java:60) > 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(PropertyUtils.java:474) > at > org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428) > at > org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java) > at > org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java) > at > org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java) > at > org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808) > at > org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252) > at > org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) > at > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110) > at > com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174) > at > com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313) > at > com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116) > at > com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283) > at > com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42) > at > com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40) > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76) > at > hronline.secure.app.HROnlineFilter.doFilter(HROnlineFilter.java:162) > at > com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132) > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71) > at > com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974) > at > com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:564) > at > com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200) > at > com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119) > at > com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276) > at > com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71) > at > com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116) > at > com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186) > at > com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334) > at > com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56) > at > com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618) > at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439) > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672) > > > Hello, > > I have a DynaActionForm such as: > <form-bean name="dynaCWWHistoryForm" type= > "org.apache.struts.action.DynaActionForm"> > <form-property name="cancelButton" type= > "org.apache.struts.util.ImageButtonBean"></form-property> > <form-property name="displayContent" type="java.lang.Boolean"></ > form-property> > <form-property name="frmtPrinter" type="java.lang.String"></ > form-property> > <form-property name="historyItems" type="personal.history.HistoryVO[]" > ></form-property> > <form-property name="language" type="java.lang.String"></form-property> > <form-property name="scheduleTypes" type="java.util.List"></ > form-property> > <form-property name="systemDate" type="java.lang.String"></ > form-property> > <form-property name="updateButton" type= > "org.apache.struts.util.ImageButtonBean"></form-property> > <form-property name="workWeekSchedule" type="java.lang.String"></ > form-property> > <form-property name="years" type="java.util.List"></form-property> > </form-bean> > > If I assign a size to the array such as: > <form-property name="historyItems" type="personal.history.HistoryVO[]" > size="4"></form-property> > It works fine. > > My problem is two fold: > 1. The HistoryVO[] can be of any size... therefore I cannot assgin a size > to the <form-property> > 2. The user can add rows dynamically to DOM using JavaScript... how can > this also work with the DynaActionForm ? > > Much appreciated, > Glenn > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]