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]

Reply via email to