Yes step #7 is occuring. One of the reasons for not chaining actions together.
sandeep --- "John M. Corro" <[EMAIL PROTECTED]> wrote: > I'm currently running into an issue w/ data > reposting after I've forwarded to > another Action. > > In my ActionForm, say I have an ArrayList of > ApplicationUser objects. In the > associated JSP page, I list the data for each > ApplicationUser object in a HTML > table (one row for one ApplicationUser). > > The flow I'm trying to setup is as follows: > 1. User types in some URL that maps to a setup type > action. In this setup Action > the ApplicationUser objects are retrieved from > persistence and loaded into the > ActionForm. The request is then forward to the > appropriate JSP page. > > 2. The user clicks a checkbox on one of the rows to > denote that they'd like > that specific ApplicationUser deleted and then hits > "submit". > > 3. The HTML form data is posted to a URL that maps > to an Action that processes > the data appropriately (in this case deleting the > ApplicationUser). The request > is then forwarded to the same URL as in step 1 (so > that the HTML page they just > came from is redisplayed w/ the updated data). > > > If I understand correctly, these are the sequence of > events at a technical level: > > > 1. User posts data for saving (ie hits 'Submit' > button) > > 2. Struts invokes reset() on ActionForm. > ** NOTE: I needed to implement a hack here - > normally in the reset() method > you return all attributes to non-valued states. So > in this case the ArrayList > that would hold all the ApplicationUser objects is > cleared out. However, if > I do clear them out, I run into an > IndexOutOFBoundsException because Struts > will try to populate the form values into an empty > ArrayList of ApplicationUser > objects. As a result, in the reset method I have to > repopulate the ApplicationUser > objects back into the Form. I've been on several > Struts projects and have never > found a good way of dealing w/ this (populating form > list data in two spots: > setup Action and reset method). If anyone has any > good ideas, I'd LOVE to hear > them! > > 3. Struts populates data from HTML post into > ActionForm > > 4. Struts forwards to the Action that does the > processing. > > 5. The Action deletes the appropriate user from > persistence and forwards to > a setup type Action. > > 6. Struts invokes reset() on ActionForm > ** NOTE: Now at this point one user was deleted so > the size of the ArrayList > will be smaller than when we started. > > 7. Struts attempts to populate data from the > original HTML post into the ActionForm. > When Struts tries to access the last element, it > throws an IndexOutOfBoundsException > (because the number of ApplicationUser objects is > now reduced by one). > > I'm not 100% certain that step #7 is taking place, > but it's a reasonable explanation > for why I get the IndexOutOfBoundsException. > > So my question to the group is > - Can someone confirm that step #7 is occuring > - Recommend any alternative approachs to sidestep > the problem or prevent the > reset() method from getting invoked before the setup > Action. > * Extra points for anyone who can recommend a good > way of dealing w/ the hack > noted in step #2 :) > > > John M. Corro > Cornerstone Consulting > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]