On 12/15/06, Anil Kumar T <[EMAIL PROTECTED]> wrote:
Hi ... Thanks to Ed and Frank for explaining this.. I understand it. One more question was .. is there a way to avoid mandatory calling it in all the sub actions, instead the call should happen automatically. For Ex : I believe .......... when we instantiate a sub class by saying <code> SubClass subcls = new SubClass();</code>, the base class constructor is called and then the sub class constructor is called (hope am correct). Some thing like this am looking at method level. I think am moving out of struts and getting into the concepts etc..
Use Frank's suggestion of declaring execute() in the base action (I would also declare it final so it can't be extended) and then define 'public abstract ActionForward realExecute(ActionForm form, ...)' which is called by the base action's execute() method. Since it's declared abstract, any class extending the base action MUST define the method. Coming to the actual point. I want to have the user name to be available
in all the action class instances with less effort. During the login time I can get it from DB and then put it in session. And then in all the actions I need the user name/id for my processing. So as of now am getting the user name from session in all the actions. But looking for a better handling....
This is what I usually do, if it's just a user name it's not that big to worry about storing it in the session. There can even be a method in the base class, "protected String getUserName() { ... }". You could also pass it as a cookie to the browser, but unless you encrypt it, someone could just change their cookie to a different user id. Browsers don't have any access to session variables and don't have to get sent back and forth to the client. -ed Any thoughts on this point.....?
Thanks & regards, Anil. -----Original Message----- From: Frank W. Zammetti [mailto:[EMAIL PROTECTED] Sent: Thursday, December 14, 2006 9:03 PM To: Struts Users Mailing List Cc: Struts Users Mailing List Subject: Re: Preprocessing of request I'm glad Ed replied because I missed your reply Anil... I wasn't ignoring you :) Ed covered it well... when I do this, I tend to do it slightly different... I write an Action that has an extra empty method, realExecute()... execute() calls realExecute(), and any "common" code, like your transformation logic, is in execute()... then I extent this class to create the Actions for my application, I override realExecute(), and that's that. Same basic concept, just a slightly different structure. Still saying filter though :) Frank -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com AIM/Yahoo: fzammetti MSN: [EMAIL PROTECTED] Author of "Practical Ajax Projects With Java Technology" (2006, Apress, ISBN 1-59059-695-1) Java Web Parts - http://javawebparts.sourceforge.net Supplying the wheel, so you don't have to reinvent it! On Thu, December 14, 2006 9:59 am, Ed Griebel wrote: > You would define a base action that extends > org.apache.struts.action.Action and includes a method execute() or > maybe a helper method doSetup(). > > Your action classes would then extend this BaseAction class and then > one of the first things you would do in execute() would be to call > super.execute() or super.doSetup(). > > But, like Frank said, it would be better to decouple your logic from > Struts by implementing a servlet filter which will work regardless if > using struts 1.2, 1.3, 2.0, or just plain old servlets+JSPs. > > HTH, > -ed > > On 12/14/06, Anil Kumar T <[EMAIL PROTECTED]> wrote: >> >> Hi Frank, >> >> Referring to your response.. >> you might also be able >> to have a base Action that all your Actions extend from, and the base >> action does the transformation before the real work happens. This might >> work if you don't need the transformation to happen before that point. >> >> How does this works ? Theoretically I understand this, but how to >> implement this? I mean where do we mention our CustomizedBaseAction >> class name? some where in properties ? Can you tell me..? >> >> Anil. >> >> >> >> -----Original Message----- >> From: Frank W. Zammetti [mailto:[EMAIL PROTECTED] >> Sent: Wednesday, December 13, 2006 1:03 AM >> To: Struts Users Mailing List >> Cc: 'user@struts.apache.org' >> Subject: Re: Preprocessing of request >> >> Your best bet most likely is a servlet filter. Do the transformation >> and >> stuff the transformed content in request as an attribute, then grab it >> later in your Actions. >> >> Which version of Struts are you using? If pre-1.3, modifying the RP is >> one of the few other options as Dave mentioned... you might also be able >> to have a base Action that all your Actions extend from, and the base >> action does the transformation before the real work happens. This might >> work if you don't need the transformation to happen before that point. >> >> If using 1.3.x, you could write a command to do it and modify the RP >> chain. >> >> If 2.x, an interceptor is probably the right answer. >> >> However, in all these cases, a servlet filter would work, and would keep >> your transformation logic abstracted out of Struts itself, so one less >> thing to worry about if you upgrade versions later :) >> >> Frank >> >> >> -- >> Frank W. Zammetti >> Founder and Chief Software Architect >> Omnytex Technologies >> http://www.omnytex.com >> AIM/Yahoo: fzammetti >> MSN: [EMAIL PROTECTED] >> Author of "Practical Ajax Projects With Java Technology" >> (2006, Apress, ISBN 1-59059-695-1) >> Java Web Parts - http://javawebparts.sourceforge.net >> Supplying the wheel, so you don't have to reinvent it! >> >> On Tue, December 12, 2006 1:17 pm, O'Toole, Joe wrote: >> > Hi >> > >> > My application receieves an xml request. I need to perform some >> > transformation of this xml before performing business logic etc. >> > >> > Is there anyway I can configure through struts that I can invoke a >> java >> > class that does this task as I don't want to perform it in the action >> or >> > the >> > model. Something like the plug-in element in the struts-config.xml >> that >> > invokes a java class that adheres to correct interface for performing >> > tasks >> > when the app is starting/stopping. >> > >> > I cannot see where I can do this and I would really to make this task >> > configurable and push it out from the action or model >> > >> > Thanks >> > >> > Joe >> > >> > >> > >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> Information transmitted by this e-mail is proprietary to Infinite >> Computer Solutions and / or its Customers and is intended for use only >> by the individual or the entity to which it is addressed, and may >> contain information that is privileged, confidential or exempt from >> disclosure under applicable law. If you are not the intended recipient >> or it appears that this mail has been forwarded to you without proper >> authority, you are notified that any use or dissemination of this >> information in any manner is strictly prohibited. In such cases, please >> notify us immediately at [EMAIL PROTECTED] and delete this email from >> your records. >> >> --------------------------------------------------------------------- >> 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] Information transmitted by this e-mail is proprietary to Infinite Computer Solutions and / or its Customers and is intended for use only by the individual or the entity to which it is addressed, and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please notify us immediately at [EMAIL PROTECTED] and delete this email from your records. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]