Here is the way I did it:
 
I am using the template approach for the jsp files.
template.jsp is the template file
wizard.jsp has has the template tags
wizardpageX.jsp (where X is a number and corresponds to the number of screens in your wizard) contains the presentation.
 
Inside of the wizardpageX.jsp there are 2 hidden fields (page and direction).  page holds the number of the page we are viewing and direction holds the action we want to take ( next, previous, finish, cancel).  I use JavaScript to update the direction tag when one of the buttons are pushed.  The ActionForm can validate the input for the page we are viewing based on the direction we want to go.  If there are any errors, we forward back to wizard.jsp ( the input file ).  wizard.jsp will look at the page property and decide which wizardpageX.jsp file to display as the body of the template.jsp.  If there aren't any errors, my Action object will update the page property to the page we want to go and forward control back to wizard.jsp.
 
James Hicks
-----Original Message-----
From: Jeff Trent [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 08, 2001 4:13 PM
To: [EMAIL PROTECTED]
Subject: Re: Override Input Form / JSP when Errors Are Encountered

That doesn't work - that is my problem.  I don't have a chance to do this in my Action class since the presence of errors generated in form.validate() triggers an immediate response by the framework and redirection occurs automagically to the input form (page 1), not the page which caused the error (eg page 2).
 
----- Original Message -----
Sent: Tuesday, May 08, 2001 3:56 PM
Subject: RE: Override Input Form / JSP when Errors Are Encountered

 
instead of   mapping.findForward(mapping.getInput() )  use   mapping.findForward("page2 or page3" ) ;
-----Original Message-----
From: Jeff Trent [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 08, 2001 3:17 PM
To: [EMAIL PROTECTED]
Subject: Override Input Form / JSP when Errors Are Encountered

When validate() returns an error collection, the framework takes me back to the input page (page1).  How do I override this?  I have a multi-page input wizard as shown below.  I'd like to stay on the page that resulted in the error instead of going back to page 1.
 
    <action    path="/someWizard"
               type="com.x.WizardAction"
               name="wizardForm"
              scope="session"
              input="/page1.jsp">
        <forward   name="page2"              path="/page2.jsp"/>
        <forward   name="page3"        path="/page3.jsp"/>
    </action>

Reply via email to