Take a look at the struts-example. I know its been part of it since at least Struts 1.0
...specifically, look at SaveRegistrationAction.java Good Luck!!! James Mitchell Software Engineer\Struts Evangelist Struts-Atlanta, the "Open Minded Developer Network" http://www.open-tools.org/struts-atlanta > -----Original Message----- > From: Nilan Shakya [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, July 10, 2002 12:01 PM > To: 'Struts Users Mailing List' > Cc: '[EMAIL PROTECTED]' > Subject: RE: Problem with form submission > > > Thank you James. > > I am still not sure where to put saveToken(request) and > isTokenValid(request, true) is not taking. It is not accepting as valid > method. > > I am hoping that you will give me some clue for that. > > Thank you, > Nilan > > -----Original Message----- > From: James Mitchell [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, July 10, 2002 12:58 AM > To: Struts Users Mailing List > Subject: RE: Problem with form submission, > > I saved the below msg because this is a very common question: > > > -----Original Message----- > > From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]] > > Sent: Friday, June 28, 2002 3:10 PM > > To: Struts Users Mailing List > > Cc: Ivan D. Sager > > Subject: Re: mapping > > > > <snip/> > > > > > To deal with resubmits, the most important issue is to avoid > updating the > > database twice when the user accidentally resubmits the same > form. Struts > > has a feature called "transaction control tokens" that help you avoid > > this, which is very simply used as follows: > > > > * In the Action that sets up your input form (i.e. before you forward > > to it), execute the following > > > > saveToken(request) > > > > to save a special value in the user's session that will be used in > > the next step. > > > > * In the Action that receives the form and updates the database, add > > the following logic before you do the update: > > > > if (isTokenValid(request, true)) { > > ... this is a resubmit, so go display an error ... > > } > > > > The "true" parameter causes the token to be removed from the session > > so that it doesn't interfere with subsequent form submits. > > > > This way, the submit will work the first time, but fail on any > accidental > > or on-purpose resubmit, and you avoid adding the information to the > > database twice. It also prevents the user from navigating > directly to the > > "myDB.do" URL without going through your normal setup actions -- because > > the transaction token would not have been placed in the session, so the > > isTokenValid() test would fail. > > > > Craig > > > > > > > > James Mitchell > Software Engineer\Struts Evangelist > Struts-Atlanta, the "Open Minded Developer Network" > http://www.open-tools.org/struts-atlanta > > > > > > -----Original Message----- > > From: Nilan Shakya [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, July 09, 2002 6:59 PM > > To: 'Struts Users Mailing List' > > Subject: Problem with form submission > > > > > > Hi All! > > > > I am having a problem while submitting a form. My form submission > > sometimes > > takes delay because it has to do lots of validation before updating the > > information in database. While the form is on the process of > submission of > > data if I click the same submit button once again it is > > submitting the data > > once again. This means that, now my output listing of items > from db shows > > repeated data set submitted (same data set submitted twice). I want to > > prevent the form be submitted once it is on the process of submission of > > data (disable the submission of form if it is already on the > way to submit > > something). > > > > Does anyone have any idea to solve my problem? > > > > Your help will be greatly appreciated. > > > > Nilan > > > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, July 09, 2002 11:39 AM > > To: Struts Users Mailing List > > Subject: Re: Off-Topic: JMS Design Question... > > > > > > > > To begin with, I'd recommend using a web service instead of just > > JMS. It's > > more reusable, has the ability for a variety of clients to access it and > > comes with fewer networking headaches. Plus they are especially good for > > sending XML. Given the fact that you are simply sending messages and > > getting responses, this may be better. > > > > But I've also built JMS apps as well. JMS is extremely cool and > > has a whole > > bunch of functionality that might be useful. In fact, this is > > how Weblogic > > implements message-oriented web services (see - "Message-Style > > Web Services > > and JMS" at > > http://edocs.bea.com/wls/docs61/webServices/develop.html#1031913 ). > > > > Using JMS within your container with SOAP as the transport protocol as > > outlined in the weblogic links above would be a great solution. It gives > > you persistence within your container and theirs, while exposing > > the app as > > a web service. > > > > I believe this simplifies your solution: > > > > - Your web app either: > > 1. - Puts the transaction into a JMS queue (topic or > > point-to-point) on your machine > > - Another process on your machine gets the message and then > > makes a message-based web service call to their app server > > - Their app server (which is exposed as a web > > service) gets the > > message, processes it and places the result on an outoging queue > > - Your web sevice call then retrieves the results. > > or, 2. - Your web app simply acts as a client to their web > > service and sends the message/retrieves the results by itself. > > - In this case you may be able to use the simpler, RPC-style > > web service. > > - In this case you also lose the ability to easily > persist the > > transaction for sending later it their service is unavailable. > > > > > > Let's assume you choose option #1 above - to answer your questions: > > > > 1) If Client's App Server is down, then our MDB should keep resending > > till the message is sent successfully. How can I do this in JMS? > > > > - roll-back your read of your internal JMS queue. The message will be > > there when you retry at some later time. The normal transaction > management > > stuff in your app server should handle all this. > > > > > > 2) If our JMS Server is down (shouldn't happen, but let's say it does) > > what should the Web App do? Would "Durable Subscriptions" help in this > > case? > > > > - Log the information you captured in a database and/or via an e-mail > > message to someone who cares and intervene manually (uless you want to > > write some fail-safe backup delivery - but then how do you > provide back-up > > in case the back-up fails?). "Durable Subscriptions" would allow > > you to not > > lose any messages already on the queue, but wouldn't help you add new > > transactions if they came along while JMS was down. > > > > Since this is off-topid. feel free to respond to me directly if > > you want to > > follow up. > > > > Kevin > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hello, > > > > This is kind of off-topic, so I apologize in advance. We do have some > > J2EE gurus on this mailing list so I decided to ask it here. (Is there > > any other *active* mailing list where I can post JMS related questions?) > > > > Anyway, I need some help to develop a JMS based solution. Here's what we > > are trying to accomplish; > > > > We need to send XML messages (as well as other types of messages) back & > > forth between two Application Servers. In other words, a Web Application > > created by us will send a message to the application server of our > > client and vice versa. > > > > This is what I was thinking of doing; > > > > 1) When it's time to send a message on our side, we will write it to a > > Topic in our App Server. > > 2) A MDB on our side will retrieve the message and send it to the Topic > > of our client. > > > > The same logic will apply for incoming messages; > > 1) Client will write a message to our Topic. > > 2) A MDB on our side will then pick up this message and process it. > > > > If this sounds okay, then I am wondering how I can handle Exception > > conditions. For example; > > > > 1) If Client's App Server is down, then our MDB should keep resending > > till the message is sent successfully. How can I do this in JMS? > > 2) If our JMS Server is down (shouldn't happen, but let's say it does) > > what should the Web App do? Would "Durable Subscriptions" help in this > > case? > > > > I would greatly appreciate any input in this matter. Thanks (a lot) for > > your time. > > > > - Ajay > > > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > -- > > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>