It's more likely that I don't understand. This is my first struts project and I am learning as I go.
Here is all of the getters/setters that I have so far. It is quite possible that I am missing some, but the previous page that I created that works used only those listed, and it works fine. The main difference being that the working one only has 1 form on the page, and that I use the reset method to pre-populate the page (which I have since learned is bad, but I haven't gotten back to fixing it). public int getNumProducts() { return numProducts; } public void setNumProducts(int numProducts) { this.numProducts = numProducts; } public int getNumProducts(int index) { if(this.results== null) { this.results = new ArrayList(); } while(index >= this.results.size() +1) { this.results.add(new Product()); } Product p = (Product) results.get(index); return p.getNumProducts(); } On 10/19/06, Puneet Lakhina <[EMAIL PROTECTED]> wrote:
On 10/20/06, Adam K <[EMAIL PROTECTED]> wrote: > > Getter and setter methods for ? (Sorry if it should be obvious but I want > to clarify as it isn't obvious to me) for numProducts indexed property. And i dont understand why are you populating blank values in the getter methods..I mean you should be doing that in your setter methods..something like public void setNumProducts(int index,String val) { while(index <= results.size()) { results.add(new Product()); } Product p = (Product)results.get(index); p.setNumProducts(val); } maybe i dont understnad the context of your problem properly, but this what i do with indexed properties. As far the error message here is what I recieve: > > javax.servlet.ServletException: BeanUtils.populate > org.apache.struts.util.RequestUtils.populate(RequestUtils.java > :495) > org.apache.struts.action.RequestProcessor.processPopulate( > RequestProcessor.java:816) > org.apache.struts.action.RequestProcessor.process( > RequestProcessor.java:203) > org.apache.struts.action.ActionServlet.process( ActionServlet.java > :1196) > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java > :432) > javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73) > com.sun.enterprise.web.VirtualServerPipeline.invoke( > VirtualServerPipeline.java:120) > org.apache.coyote.tomcat5.CoyoteAdapter.service( CoyoteAdapter.java > :231) > > com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter( > ProcessorTask.java:667) > > com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked ( > ProcessorTask.java:574) > com.sun.enterprise.web.connector.grizzly.ProcessorTask.process( > ProcessorTask.java:844) > > com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask( > ReadTask.java:287) > com.sun.enterprise.web.connector.grizzly.ReadTask.doTask( > ReadTask.java:212) > com.sun.enterprise.web.connector.grizzly.TaskBase.run( > TaskBase.java:252) > com.sun.enterprise.web.connector.grizzly.WorkerThread.run( > WorkerThread.java:75) > > *root cause* > > java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 > java.util.ArrayList.RangeCheck(ArrayList.java:546) > java.util.ArrayList.get(ArrayList.java:321) > org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty( > PropertyUtilsBean.java:433) > org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty( > PropertyUtilsBean.java:340) > org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty ( > PropertyUtilsBean.java:684) > org.apache.commons.beanutils.PropertyUtilsBean.getProperty( > PropertyUtilsBean.java:715) > org.apache.commons.beanutils.BeanUtilsBean.setProperty( > BeanUtilsBean.java:884) > org.apache.commons.beanutils.BeanUtilsBean.populate( > BeanUtilsBean.java:811) > org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java > :298) > org.apache.struts.util.RequestUtils.populate(RequestUtils.java > :493) > org.apache.struts.action.RequestProcessor.processPopulate( > RequestProcessor.java:816) > org.apache.struts.action.RequestProcessor.process( > RequestProcessor.java:203) > org.apache.struts.action.ActionServlet.process( ActionServlet.java > :1196) > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java > :432) > javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73) > com.sun.enterprise.web.VirtualServerPipeline.invoke( > VirtualServerPipeline.java:120) > org.apache.coyote.tomcat5.CoyoteAdapter.service( CoyoteAdapter.java > :231) > > com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter( > ProcessorTask.java:667) > > com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked ( > ProcessorTask.java:574) > com.sun.enterprise.web.connector.grizzly.ProcessorTask.process( > ProcessorTask.java:844) > > com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask( > ReadTask.java:287) > com.sun.enterprise.web.connector.grizzly.ReadTask.doTask( > ReadTask.java:212) > com.sun.enterprise.web.connector.grizzly.TaskBase.run( > TaskBase.java:252) > com.sun.enterprise.web.connector.grizzly.WorkerThread.run( > WorkerThread.java:75) > > -- Puneet