On Fri, 19 Sep 2003, Mohd Amin Mohd Din wrote:

> Date: Fri, 19 Sep 2003 10:42:13 +0800
> From: Mohd Amin Mohd Din <[EMAIL PROTECTED]>
> Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>
> To: 'Struts Users Mailing List' <[EMAIL PROTECTED]>
> Subject: RE: Refreshing Form Submission and Duplicates
>
> An easier way would be to do a redirect once submitting the form to
> listing the page.
>

Redirect doesn't stop the user from pressing the back button (or working
their way back the "Go" menu) and submitting the form again.

Craig


> -----Original Message-----
> From: Shane Mingins [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 19, 2003 10:26 AM
> To: 'Struts Users Mailing List'
> Subject: RE: Refreshing Form Submission and Duplicates
>
> I noticed this the other day at http://husted.com/struts/catalog.html
>
> Use the Action Token methods to prevent duplicate submits
>
> There are methods built into the Struts action to generate one-use
> tokens. A
> token is placed in the session when a form is populated and also into
> the
> HTML form as a hidden property. When the form is returned, the token is
> validated. If validation fails, then the form has already been
> submitted,
> and the user can be apprised.
>
> - saveToken(request)
> - on the return trip,
>       isTokenValid(request)
>       resetToken(request)
>
>
> I am not sure if that is of any help as I have yet to use it ...
> although I
> have just this minute found a case in my own application to do so ;->
>
> Shane
>
>
>
> > -----Original Message-----
> > From: John Reynolds [mailto:[EMAIL PROTECTED]
> > Sent: Friday, 19 September 2003 2:16 p.m.
> > To: [EMAIL PROTECTED]
> > Subject: Refreshing Form Submission and Duplicates
> >
> > Hi,
> >
> > I have a question about a bug in my application using a Struts Form.
> > This happens in multiple areas of my site, but the one example I will
> > use is a Message Board feature. The problem is that when a user goes
> to
> > a list of messages, fills out the form to post a message and ends up
> > back on the list page, the message will be submitted twice if they
> > refresh the page following the form submission. this has caused
> > duplicate messages throughout the message board, as it is the nature
> of
> > message boards to refresh the list of messages often to check for new
> > ones. Keep in mind, my app strictly follows the approach of the
> O'Reilly
> > book.
> >
> > I'll try to make this easy to follow:
> >
> > 1. the user goes to a message board with a list of messages from other
> > users. this page is /messagelist.do the action looks like this:
> >
> >       <action
> >             path="/messagelist"
> >             name="messageListForm"
> >             type="myapp.framework.actions.MessageListAction"
> >             scope="request">
> >             <forward name="Success"
> path="/templates/messagelist.jsp"/>
> >       </action>
> >
> > (the "messageListForm" is a struts form bean with a List of message
> > objects)
> >
> > 2. at the bottom of the page is a form to post your own message 3. the
> > user enters their Name, Subject and Message Body and submit the form
> 4.
> > the form is processed by a Struts Action. the action tag in
> > struts-config.xml looks like this:
> >
> >       <action
> >             path="/messageinsert"
> >             name="messageDetailForm"
> >             type="myapp.framework.actions.MessageInsertAction"
> >             scope="request"
> >             validate="false">
> >             <forward name="Success" path="/messagelist.do"/>
> >       </action>
> >
> > - From the naming convention, you can see that the Action inserts the
> > message into storage (database) and upon success the user is forwarded
> > to the same /messagelist.do action
> >
> > Now, when the form is submitted and this is displayed, the URL in the
> > browser says:
> >
> > http://myapp.com/myapp/messageinsert.do
> >
> > I expect that this is correct because the HTML form itself was <form
> > action="/messageinsert.do" method="POST">.
> >
> > The user's submitted message will be found on the list of messages.
> > HOWEVER, IF THEY REFRESH THE SCREEN, THE MESSAGE WILL BE SUBMITTED
> > AGAIN. This should not happen. If i'm the customer, i've already
> > submitted the form, and now i'm seeing a list of messages. refreshing
> > should have no effect on the form that i just submitted.
> >
> > Does anyone have a suggested fix?
> >
> > Thanks all,
> >
> > JR
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to