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