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]