struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam K" <ada...@gmail.com>
Subject Re: Indexed Properties
Date Fri, 17 Nov 2006 20:54:18 GMT
I think I have found the problem - or at least a potential cause.  Would it
be correct in stating that this will not work using ActionForm (what I was
using)  and that I must instead use DynaActionForm ?

Thanks for the time thus far.


On 11/17/06, Hubert Rabago <hrabago@gmail.com> wrote:
>
> Adam,
>
> Try adding a getResultsPage() that doesn't take params and always
> returns a valid collection.  (Throw in the setResultsPage() that
> accepts a collection as well.)
>
> Hubert
>
> On 11/17/06, Adam K <adamk1@gmail.com> wrote:
> > This has been driving me nuts for the past little bit.
> > I have a page that is populated using indexed properties.  The
> prepopulation
> > works  fine, and I get the results as I would expect them, but trying to
> > submit the form I get an index out of bounds exception.  I know that it
> is
> > being caused because the page doesn't have the arrayList to use in the
> > indexed properties.   I guess my question boils down to using indexed
> > properties properly.  I will start by putting in an explanation of what
> I
> > have and what I am trying to do:
> >
> > The following is what I am working with :
> > JSP:
> >
> > <logic:notEmpty name="ProdSelectionForm" property="results">
> >     <logic:iterate name="ProdSelectionForm" property="results"
> > id="ResultsPage">
> >         <tr>
> >             <td>    <bean:write name="ResultsPage"
> property="description"
> > />    </td>
> >             <td >    <html:text  name="ResultsPage"
> property="numProducts"
> > indexed="true" />     </td>
> >         </tr>
> >     </logic:iterate>
> > </logic:notEmpty>
> >
> > What I am trying to achieve is that a user clicks on a link, they are
> sent
> > to page, and all of the values are prepopulated.  The page is then
> displayed
> > and the user has the option to modify any of the variables that they
> want to
> > before resubmitting the page.  (When they resubmit the form has a url
> > parameter attached to it).  What is happening (or at least what I
> believe is
> > happening is the following:  link is clicked, reset is called action
> sets
> > the variables, page is displayed, user can modify the page and resubmit,
> > reset is called on the form, the action is called (this is where it dies
> as
> > there is no longer an ArrayList) to modify.  My question is am I going
> about
> > this in a manner that seems sensible or am I way off base ?  I have the
> > values being prepopulated, but when trying to use the values that the
> user
> > puts in I can't use them in the action, nor can I pull the values from
> the
> > form without again setting the values in the form.   I am hoping it is
> that
> > I have over looked something, but it's possible that I don't understand
> > something as well.
> >
> > Here is the Action code (This is the entire execute method) :
> >         HttpSession session = request.getSession();
> >         ProdSelectionForm prodSelection = (ProdSelectionForm) form;
> >         User user ;
> >         user = (User)session.getAttribute("User");
> >         Order order = new Order();
> >         ArrayList products = new ArrayList();
> >         ArrayList pageRes = new ArrayList();
> >         ArrayList results = new ArrayList();
> >
> >         String action = (request.getParameter("Dest") == null ?
> "populate" :
> > request.getParameter("Dest")   );
> >
> >         order = user.getCurrOrder(user);
> >
> >         if(action.equals("populate"))
> >         {
> >             prodSelection.setResults(order.getProducts());
> >         }
> >
> >         if(action.equals("Delete"))
> >         {
> >             ArrayList p = new ArrayList();
> >             p = prodSelection.getResults();
> >
> >             int count = 0;
> >             while (count < p.size())
> >             {
> >                 Product t  = (Product) p.get(count);
> >                 t.setDescription("" +t.getNumProducts() +">"
> +pageRes.size()
> > +"<");
> >                 p.set(count, t);
> >                 count++;
> >             }
> >
> >             t.setDescription("" +t.getNumProducts() +">" +p.size()
> +"<");
> >             p.set(0, t);
> >
> >             user.setOrder(p , user);
> >             prodSelection.setResults(p);
> >             prodSelection.setTest(prodSelection.getTest()+" + " + p.size
> ());
> >
> >             return mapping.findForward("success");
> >         }
> >         return mapping.findForward("success");
> >
> >
> >
> >
> > Form code: (In the form code is an ArrayList called results.  This
> arraylist
> > contains  a bunch of Product )
> >
> >     public Product getResultsPage(int index)
> >     {
> >         if(this.results == null)
> >         {
> >             this.results = new ArrayList();
> >         }
> >
> >         while(index >= this.results.size())
> >         {
> >             this.results.add(new Product());
> >         }
> >         return (Product) results.get(index);
> >     }
> >
> >     public void setResultsPage(int index, Product p)
> >     {
> >         if(this.results == null)
> >         {
> >             this.results = new ArrayList();
> >         }
> >
> >         while(index >= this.results.size())
> >         {
> >             this.results.add(new Product());
> >         }
> >         results.set(index, p);
> >         //return (Product) results.get(index);
> >     }
> >
> >     public void setResults(ArrayList results)
> >     {
> >        this.results=results;
> >     }
> >
> >     public ArrayList getResults()
> >     {
> >        return this.results;
> >     }
> >
> >
> >
> > Products is an object that stores various things about a product with
> > numProducts, and description being two of those things.
> > Within Products is both getter and setter methods for the numProducts as
> > well as description.
> >
> >
> >
> > Thanks so much for any help you may be able to provide.
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message