aspose file tools*
The moose likes Struts and the fly likes nested iterate with ArrayList Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "nested iterate with ArrayList" Watch "nested iterate with ArrayList" New topic
Author

nested iterate with ArrayList

MK Lee
Greenhorn

Joined: Jul 26, 2002
Posts: 5
I'm not familiar with Struts, please forgive me if I'm asking stupid question.

My struts-config:


My jsp:


the jsp can successfully generate the corresponding page with correct data in the html:


However, when I try to submit this page to the action class, before reaching the action class, it generates:


Why is that? How can I solve it?
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

You'll either have to change some code (most DynaUsers prefer not to) or put the form in session scope.

What is happening:
1) I assume their is an Action to populate the ActionForm with orderDetails before going to the jsp because you show that it prepopulates correctly.
2) When you submit the jsp, orderDetails[0].itemId is calling:
getOrderDetails("0").setItemId() but fails because the orderDetails' values are not in the ActionForm (a new ActionForm is created for the submission because it is declared as request scope and, well, this is a different request from the user).
3) At this point it looks for the index of 0 in the orderDetails ArrayList but finds that the list is empty (size=0) and throws and IndexException

If you're not afraid of getting your hands dirty you can come up with a way to put the ArrayList back into the new ActionForm. The reset() method might be a good place to do this.


A good workman is known by his tools.
MK Lee
Greenhorn

Joined: Jul 26, 2002
Posts: 5
hahaa...
i used the simplest trick: modify the form scope to session
and it works fine
Thx a lot
^3^
 
Consider Paul's rocket mass heater.
 
subject: nested iterate with ArrayList