Mailing list eats the attachments, sorry... I just like this picture :-)


------- Forwarded message -------
From: Igor Shabalov <[EMAIL PROTECTED]>
To: Struts Users Mailing List <[EMAIL PROTECTED]>
Subject: Re: SUGGESTION: Transaction token creation control in struts- config.xml (LONG)
Date: Fri, 28 Mar 2003 15:42:23 -0800



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]

Reply via email to