... Of course you can execute code after that.
*You're* executing code after that--but when there are validation errors the code you'll execute is the check to see if there were validation errors and the type check. On Fri, Sep 17, 2010 at 5:51 PM, Oscar <oscar.kalde...@gmail.com> wrote: > 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> >