If you're using a Servlet 2.3 container, then filters seem like a better way to
go. Otherwise, for Struts 1.1, a custom RequestProcessor seems more appropriate.

Quoting Dario Geier <[EMAIL PROTECTED]>:

> I would change the signature of the executeAction method not to throw
> Exception, but a custom ActionException. This way, you would be able to be
> aware of what exceptions are thrown in your action code.
> 
> i.e. 
> 
>     public abstract ActionForward executeAction(      ActionMapping _mapping,
>                                               ActionForm _form, 
>                                               HttpServletRequest _req, 
>                                               HttpServletResponse _res) throws 
> MyActionException;
> 
> 
> -----Original Message-----
> From: Xavier Saint-Denis [mailto:[EMAIL PROTECTED]
> Sent: Monday, March 31, 2003 3:21 PM
> To: Struts Users Mailing List
> Subject: Re: Right way to extends Action
> 
> 
> Hi,
> In our application we use a similar concept :
> 
> - we have a class like this :
> public abstract class BaseAction extends Action
> 
> In this class :
> 
> - we added some usefull field like a logger an a pointer to a singleton
> that
> retains application's data
>     protected Log log = LogFactory.getLog(this.getClass());
>     protected static final Infos infos = Infos.getInstance();
> 
> - We change the modifier of the execute Method so as to be sure nobody use
> it directly:
>     public final ActionForward execute(ActionMapping _mapping, ActionForm
> _form, HttpServletRequest _req, HttpServletResponse _res) throws Exception
> {
> 
> - In this method we check the user session and log in information
> - At the end of this method we call
>     return executeAction(_mapping, _form, _req, _res);
> 
> - This method "executeAction" is defined as this :
>     public abstract ActionForward executeAction(ActionMapping _mapping,
> ActionForm _form, HttpServletRequest _req, HttpServletResponse _res) throws
> Exception;
> 
> - So when we create a new action, we extend BaseAction and implement the
> abstract method executeAction
> This way, we have automatic user login check, and a logger at disposition.
> 
> regards,
> 
> Xavier
> 
> ----- Original Message -----
> From: "niksa_os" <[EMAIL PROTECTED]>
> To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> Sent: Monday, March 31, 2003 1:45 PM
> Subject: Right way to extends Action
> 
> 
> I want all my Actions to extend BaseAction.
> 
> In BaseAction I want to check user session and to put some data in it, if
> that data doesn't exist.
> 
> Is it good way:
> 
> public class SomeAction extends BaseAction {
>   public ActionForward execute( ActionMapping mapping,
>                                 ActionForm form,
>                                 HttpServletRequest request,
>                                 HttpServletResponse response ) {
>   super.execute( mapping,form, request, response);
>   OK, proceed ...........
> 
> 
> public class BaseAction extends BaseAction {
>   public ActionForward execute( ActionMapping mapping,
>                                 ActionForm form,
>                                 HttpServletRequest request,
>                                 HttpServletResponse response ) {
>   if (userSession is wrong) {
>     -try   -- put data in session
>     -catch -- return mapping.findForward("wrongSession");}
>   else return null;  //everything is OK
> 
> What you think about this way and is there better way to extend Action?
> 
> Thanks.
> 
> 
> 
> ---------------------------------------------------------------------
> 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]
> 


-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech       <http://www.dotech.com/>

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

Reply via email to