There is a session token which you can use for enforcing transaction integrity built into struts already. It is also a piece of cake to custom code your own if you want finer grained control.
Edgar > -----Original Message----- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Friday, March 28, 2003 6:42 PM > To: 'Struts Users Mailing List' > Subject: Re: SUGGESTION: Transaction token creation control > in struts-config.xml (LONG) > > > > Good use case! I put it into attachment... > > Best, > Igor. > > > On Fri, 28 Mar 2003 16:53:15 -0600, Steve Stair > <[EMAIL PROTECTED]> wrote: > > > I've got a use case to edit an existing user. > > I've extended the ForwardAction class to make one that > forwards after > > creating a transaction token. > > > > When the user clicks on a link to edit a user's data, they > are first > > sent to an action that only loads the user data into the > form. This > > action can be re-used by a View User use case, > > without any modification, because it doesn't create a transaction > > token. > > On success, that action forwards to the JSP page/tile via an action > > that creates a transaction token. > > > > When the user clicks save, the update action persists the data, and > > forwards to JSP again via the action that creates a > transaction token. > > > > I've seen it said here that you shouldn't chain actions, > but it seems > > more clear to me this way. By doing it this way, I don't have to > > create tokens in my code. The update action should not have to know > > that the place it is being forwarded to will need > > a transaction token. Isn't the point of defining forwards for an > > action that the java code > > doesn't care where it is going to next? > > > > <action-mappings> > > <!-- Action that only loads the user data --> > > <action > > path="/editUserAction" > > name="UserForm" > > type="com.whatever.LoadUserAction" > > validate="false" > > scope="request"> > > <forward name="success" path="/editUser.do" /> > > <forward name="failure" path="app.Home" /> > > </action> > > > > <!-- Action that only creates a transaction token --> > > <action > > path="/editUser" > > type="com.whatever.TransactionForwardAction" > > parameter="app.EditUser"/> > > > > <!-- Action that persists the user data (consumes the transaction > > token) --> > > <action > > path="/updateUserAction" > > name="UserForm" > > type="com.whatever.UpdateUserAction" > > validate="true" > > input="app.EditUser" > > scope="request"> > > <forward name="success" path="/editUser.do" /> > > <forward name="cancel" path="app.Home" /> > > <forward name="failure" path="/editUser.do" /> > > </action> > > > > </action-mappings> > > > > > > In any case, in doing this, it seems to me that it would > make sense if > > you could make an action create a transaction token by some > entry in > > the struts-config. > > > > > > > > -- > > Steve Stair > > [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > Igor Shabalov > Director of Engineering > Exadel Inc. > http://www.exadel.com > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]