exactly
 
James Hicks
-----Original Message-----
From: Jeff Trent [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 08, 2001 7:28 PM
To: [EMAIL PROTECTED]
Subject: Re: Override Input Form / JSP when Errors Are Encountered

Interesting approach.  Let me see if I can explain this back to you to make sure I understand what you are saying:
 
Does your Wizard.jsp look something like this:
 
<template:insert template='/template.jsp'>
  <template:put name='header' content='/header.html' />
  <template:put name='sidebar' content='/sidebar.jsp' />
<logic:equal property='page' value='1'>
      <template:put name='content' content='/wizardPage1.jsp'/>
</logic:equal>
...
<logic:equal property='page' value='N'>
      <template:put name='content' content='/wizardPageN.jsp'/>
</logic:equal>
  <template:put name='footer' content='/footer.html' />
</template:insert>
 
And somewhere at the top you have some logic to determine which page your on based on direction and error conditions?
 
*** I'm starting to feel like I'm at battle with struts!  There must be a way I can hook the error checking logic to circumvent the redirect to the base input form.  I guess its time to dig thru the source code.  What bothers me the most is that I feel like I'm not doing anything outrageous here.
 
- jeff
 
----- Original Message -----
Sent: Tuesday, May 08, 2001 5:56 PM
Subject: RE: Override Input Form / JSP when Errors Are Encountered

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