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>
>

Reply via email to