But doesn't exist a way to do that? I mean, execute super.processValidate()
and execute code after that? Because it will be useful to prepare stuff
after you do something in the action, for example, insert something in the
action and after prepare a list of items or something like that.

2010/9/17 Dave Newton <davelnew...@gmail.com>

> You only call prepareAfter if there aren't validation errors--if there are,
> it won't be called.
>
> On Fri, Sep 17, 2010 at 4:48 PM, Oscar <oscar.kalde...@gmail.com> wrote:
>
> > Hi to all. I'm working on a project using Struts 1.1 because those are
> > client requirements. I override RequestProcessor and some of it's
> methods.
> > like processRoles, processActionPerform, and so on. I want to implement a
> > logic like Struts 2 Preparable interface, where if you implement in your
> > Struts 2 Action you implement method prepare() that executes before an
> > action method is called.
> >
> > I want to simulate that in Struts 1 so i created a PreparedForm where i
> > define 2 methods signature: prepareBefore and PrepareAfter. prepareBefore
> > will execute before action is called and prepareAfter until after action
> > call.
> >
> > This is PreparedForm:
> >
> > public interface PreparedForm {
> >
> >    public void prepareBefore(HttpServletRequest request);
> >
> >    public void prepareAfter(HttpServletRequest request);
> > }
> >
> > This is a form that implements PreparedForm:
> >
> > public class PaisForm extends DefaultActionForm implements PreparedForm {
> >
> >    private String idpai;
> >    private String idmon;
> >    private String nombre;
> >    private String codigoNomina;
> >
> >    public void prepareAfter(HttpServletRequest request) {
> >        //Do stuff after execute action method
> >    }
> >
> >    public void prepareBefore(HttpServletRequest request) {
> >        //Do stuff before execute action method
> >
> >    }
> > ...
> >
> > So, i override processValidate to call here prepareAfter in case that
> form
> > validation has errors, but maybe i didn't overrided well the method, this
> > is
> > my method:
> >
> >  protected boolean processValidate(javax.servlet.http.HttpServletRequest
> > request,
> >                                  javax.servlet.http.HttpServletResponse
> > response,
> >                                  ActionForm form,
> >                                  ActionMapping mapping)
> >                           throws java.io.IOException,
> >                                  javax.servlet.ServletException {
> > boolean resValidacion = super.processValidate(request, response, form,
> > mapping);
> >        //Si se implemento PreparedForm, se llama prepareAfter
> >        if (form instanceof PreparedForm && !resValidacion)
> >            ((PreparedForm)form).prepareAfter(request);
> >
> >        return resValidacion;
> >    }
> >
> > When i call an action and validate() in this line:
> >
> > boolean resValidacion = super.processValidate(request, response, form,
> > mapping);
> >
> > returns validation errors, it returns me directly to jsp and doesn't
> > continue on the next lines and i don't know why.
> >
> > Thanks in advance.
> >
> >
> > --
> > Oscar Calderón
> > SCJP 6  <http://javahowto.net>
> >
>



-- 
Oscar Calderón
SCJP 6  <http://javahowto.net>

Reply via email to