There is another typical example: You have a search screen. after performing a search, you select one of the items in order to... say... edit it. You go to the edition screen (form) and, once you've concluded working with that item (typically: saved, deleted or canceled), you return to the search screen, where you'd see the (refreshed version of the) last search results' table (to keep it simple, don't even assume there is pagination).
-----Mensaje original----- De: Erik Weber [mailto:[EMAIL PROTECTED] Enviado el: jueves, 07 de octubre de 2004 15:31 Para: Struts Users Mailing List Asunto: Re: cleaning session I think a good place to start would be to start a list of situations or use cases encountered where this type of device was implemented or needed (not just with "wizards", but with session attributes in general I think). Then we could look at the list after a while and see what all or many of the entries have in common -- try to recognize a pattern. Then maybe we could try to create a class that solves the common problem -- one that could be inserted into a filter, a request processor, or whatever, making it generically applicable (Struts or not). I would be willing to contribute if it caught on, because I certainly have encountered a need for this more than once. For example, I recently I finished a Struts application that had an area (a set of pages/commands) for "vendors". One of the things a vendor could do was search for an item, and then upload files to "attach" to that item (such as photographs). So the ActionForm used for the file upload screen not only kept track of the normal properties associated with file uploading, but also the item. The item, in turn, housed a collection of attributes describing every file currently attached to that item. So when you viewed the upload screen, you could see all the existing uploads, and the details about the item you were working with. Even though it wasn't a proper "wizard", I decided to keep the form in session scope, because users could make mistakes (such as invalid input) and continually end up back at the screen. I didn't want to keep reloading the item and all the existing file info every time the page was needed. So I ended up writing a "cleanup" method in a base Action class that got rid of the form when it figured that the vendor was probably finished using the file upload area (such as when he returned "home"). Probably you guys have far better examples, but that's just one off the top of my head. And XML is almost always good. Erik Freddy Villalba A. wrote: >Well guys, although on the same direction you are pointing to, I do believe >though that the more framework-independent the solution is, the better. So, >my thought: > >Why not have a XML descriptor where you can explicitly define your wizards? >In that way: >(1) No matter where your resources are, they'll get cleansed. >(2) You'll be able to reuse resources at free will on several wizards >(without having to replicate them). >(3) You won't have to set up any structure or hardcode anything in order to >determine what's to be cleansed an what not. > >What do you think? > >-----Mensaje original----- >De: Erik Weber [mailto:[EMAIL PROTECTED] >Enviado el: jueves, 07 de octubre de 2004 13:26 >Para: Struts Users Mailing List >Asunto: Re: cleaning session > > >Yeah, "similar naming convention" is the key to making it easier on >yourself. > >Also, as I tried to suggest once before (in a riddle -- "a single key >can open many doors" -- ha ha ha grasshoppah), you can store references >to many objects under a single attribute key (using structured/nested >beans, maps, etc.). Delete the single attribute (perhaps when a user >returns to a main view) and you delete the entire tree of references, >freeing up all that memory with one statement and without having to >write too much conditional code. I'm not sure if this strategy is >feasible with Struts session-scoped forms though. > >Erik > > >[EMAIL PROTECTED] wrote: > > > >>Hi, Erik and Freddz. >> >>I like the idea of having a wizard whose data gets cleaned as soon as it's >> >> >scope is left. > > >>How about this: Have all resources for one wizard in a URL subdirectory. >> >> >Have a similar naming convention for the resources the wizard leaves in the >session. If a http request comes for an url, the janitor filter could remove >all wizard's session resources that do not match the current request's >directory. > > >>This way the janitor could be fairly generic. >> >>Hiran >> >>----------------------------------------- >>Hiran Chaudhuri >>SAG Systemhaus GmbH >>Elsenheimer Straße 11 >>80867 München >>Phone +49-89-54 74 21 34 >>Fax +49-89-54 74 21 99 >> >> >> >> >> >> >> >> >>>-----Original Message----- >>>From: Erik Weber [mailto:[EMAIL PROTECTED] >>>Sent: Donnerstag, 7. Oktober 2004 11:55 >>>To: Struts Users Mailing List >>>Subject: Re: cleaning session >>> >>>This is similar to what I usually implement. I have been >>>gradually developing a "session manager" or perhaps a >>>"session janitor" that watches/tracks workflow and cleans up >>>stuff from memory (session) that isn't needed anymore. It >>>could be a filter or a custom request processor in the world >>>of Struts. Since I most often use my own controller Servlet I >>>have my own place to put it, but basically, it gets invoked >>>before any request handlers. >>> >>>Erik >>> >>> >>>Freddy Villalba A. wrote: >>> >>> >>> >>> >>> >>>>Hi, >>>> >>>>I have never implemented anything like this (with Struts), >>>> >>>> >>>> >>>> >>>but this is >>> >>> >>> >>> >>>>the first thing I can think of... >>>> >>>>Assuming your wizard is one-way (by this, I mean you have a linear >>>>graph - 1<->2<->3... -, no bifurcations and /or >>>> >>>> >>>> >>>> >>>intersections and / or >>> >>> >>> >>> >>>>parallelism), you could "define" your "workflow" by >>>> >>>> >>>> >>>> >>>"tagging" the pages it is made of... >>> >>> >>> >>> >>>>then, manage the wizard from a filter that is able to detect your >>>>getting into one and your leaving it. Once it detects >>>> >>>> >>>> >>>> >>>someone's left a >>> >>> >>> >>> >>>>wizard, and knowing its components, it could have them >>>> >>>> >>>> >>>> >>>cleaned off the >>> >>> >>> >>> >>>>corresponding Session. >>>> >>>>I believe, however, that this approach wouldn't work if the graph is >>>>not linear. >>>> >>>>I'll be glad to here your feedback (everybody). >>>> >>>>HTH, >>>>Freddy. >>>> >>>>-----Mensaje original----- >>>>De: Paul McCulloch [mailto:[EMAIL PROTECTED] >>>>Enviado el: jueves, 07 de octubre de 2004 10:27 >>>>Para: 'Struts Users Mailing List' >>>>Asunto: RE: cleaning session >>>> >>>> >>>>That isn't the purpose of the (confusingly named) reset >>>> >>>> >>>> >>>> >>>method. Reset >>> >>> >>> >>> >>>>is there to, typically, deal with the html forms submit >>>> >>>> >>>> >>>> >>>checkbox fields >>> >>> >>> >>> >>>>(they don't submit anything if they are null). >>>> >>>>Paul >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>>-----Original Message----- >>>>>From: Leandro Melo [mailto:[EMAIL PROTECTED] >>>>>Sent: Wednesday, October 06, 2004 5:43 PM >>>>>To: Struts Users Mailing List >>>>>Subject: Re: cleaning session >>>>> >>>>> >>>>>If you have your action in HttpSession, why don`t you just >>>>> >>>>> >>>>> >>>>> >>>call reset >>> >>> >>> >>> >>>>>whenever a user clicks on the button supposed to start this wizard? >>>>> >>>>> >>>>> >>>>>--- struts lover <[EMAIL PROTECTED]> escreveu: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>Hello everyone, >>>>>>I am facing this problem of session. I have my action form in >>>>>>session(a wizard like thing). Now if the user starts filling in >>>>>>values and clicks on the NEXT button, to go on to the next screen >>>>>>and then instead of completing the process of application, >>>>>> >>>>>> >>>>>> >>>>>> >>>clicks on >>> >>> >>> >>> >>>>>>some other link. >>>>>>Again he wants to start with the application process, the form get >>>>>>pre-populated with the previous values, as the form in still in >>>>>>session. I want a clean form. >>>>>>How to overcome this problem??? >>>>>>Any ideas??? >>>>>>Thanks. >>>>>> >>>>>> >>>>>> >>>>>>_______________________________ >>>>>>Do you Yahoo!? >>>>>>Declare Yourself - Register online to vote today! >>>>>>http://vote.yahoo.com >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>------------------------------------------------------------ >>>>> >>>>> >>>>> >>>>> >>>--------- >>> >>> >>> >>> >>>>> >>>>> >>>>> >>>>> >>>>>>To unsubscribe, e-mail: >>>>>>[EMAIL PROTECTED] >>>>>>For additional commands, e-mail: >>>>>>[EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>__________________________________________________ >>>>>Do You Yahoo!? >>>>>Tired of spam? Yahoo! Mail has the best spam protection around >>>>>http://mail.yahoo.com >>>>> >>>>>------------------------------------------------------------ >>>>> >>>>> >>>>> >>>>> >>>--------- >>> >>> >>> >>> >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>************************************************************* >>>> >>>> >>>> >>>> >>>********* >>> >>> >>> >>> >>>>Axios Email Confidentiality Footer >>>>Privileged/Confidential Information may be contained in this >>>> >>>> >>>> >>>> >>>message. >>> >>> >>> >>> >>>>If you are not the addressee indicated in this message (or >>>> >>>> >>>> >>>> >>>responsible >>> >>> >>> >>> >>>>for delivery of the message to such person), you may not copy or >>>>deliver this message to anyone. In such case, you should >>>> >>>> >>>> >>>> >>>destroy this >>> >>> >>> >>> >>>>message, and notify us immediately. If you or your employer does not >>>>consent to Internet email messages of this kind, please advise us >>>>immediately. Opinions, conclusions and other information >>>> >>>> >>>> >>>> >>>expressed in >>> >>> >>> >>> >>>>this message are not given or endorsed by my Company or >>>> >>>> >>>> >>>> >>>employer unless >>> >>> >>> >>> >>>>otherwise indicated by an authorised representative >>>> >>>> >>>> >>>> >>>independent of this message. >>> >>> >>> >>> >>>>WARNING: >>>>While Axios Systems Ltd takes steps to prevent computer viruses from >>>>being transmitted via electronic mail attachments we cannot >>>> >>>> >>>> >>>> >>>guarantee >>> >>> >>> >>> >>>>that attachments do not contain computer virus code. You >>>> >>>> >>>> >>>> >>>are therefore >>> >>> >>> >>> >>>>strongly advised to undertake anti virus checks prior to >>>> >>>> >>>> >>>> >>>accessing the >>> >>> >>> >>> >>>>attachment to this electronic mail. Axios Systems Ltd grants no >>>>warranties regarding performance use or quality of any >>>> >>>> >>>> >>>> >>>attachment and >>> >>> >>> >>> >>>>undertakes no liability for loss or damage howsoever caused. >>>>************************************************************* >>>> >>>> >>>> >>>> >>>********* >>> >>> >>> >>> >>>>--------------------------------------------------------------------- >>>>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] >>> >>> >>> >>> >>> >>> >>--------------------------------------------------------------------- >>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] > > > > --------------------------------------------------------------------- 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]