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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to