Much thanks for this clearfying hack.

In my opinion we should look for a way to identify the pressed button without
refering the label, cause this can be change due to internalization (maybe with
an German locale "<< Prev" Button will be labeled "<< Zur�ck").

May be someone out there knows a way to have an fixed value that will be passed
back beside the label.

Regards
Uwe

Tharwat Abdul-Malik schrieb:

> I use something like the following in my struts-config.xml file:
>
>     <action    path="/signup"
>                type="SignupAction"
>                name="signupForm"
>               scope="session"
>               input="page1.jsp">
>               <forward name="page1"              path="page1jsp"/>
>               <forward name="page2"              path="page2.jsp"/>
>               <forward name="page3"              path="page3.jsp"/>
>               <forward name="page4"              path="page4.jsp"/>
>               <forward name="success"            path="confirm.jsp"/>
>     </action>
>
> In page1.jsp I declare the following buttons:
>
>                   <html:hidden property="page" value="1"/>
>                   <html:submit>
>                     <bean:message key="button.next"/>
>                   </html:submit>
>
> Page2.jsp:
>
>                   <html:hidden property="page" value="2"/>
>                   <html:submit>
>                     <bean:message key="button.prev"/>
>                   </html:submit>
>
>                   <html:submit>
>                     <bean:message key="button.next"/>
>                   </html:submit>
>
> Page3.jsp
>
>                   <html:hidden property="page" value="3"/>
>                   <html:submit>
>                     <bean:message key="button.prev"/>
>                   </html:submit>
>
>                   <html:submit>
>                     <bean:message key="button.next"/>
>                   </html:submit>
>
> Page4.jsp
>
>                   <html:hidden property="page" value="4"/>
>                   <html:submit>
>                     <bean:message key="button.prev"/>
>                   </html:submit>
>
>                   <html:submit>
>                     <bean:message key="button.finish"/>
>                   </html:submit>
>
> In my SignupForm.java I define all fields for each page. Then I have a
> switch statement in the validate method to validate the data for each page:
>
>     public ActionErrors validate(ActionMapping mapping, HttpServletRequest
> request)
>     {
>
>         ActionErrors errors = new ActionErrors();
>         switch (page)
>         {
>         case 1:
>                 // Validate fields on page 1
>         case 2:
>                ///
>         }
>        return errors;
> }
>
> Finally in the SignupAction.java I check for which button was pressed and
> return the next or previous page:
>
>     public ActionForward perform(ActionMapping mapping,
>                                  ActionForm form,
>                                  HttpServletRequest request,
>                                  HttpServletResponse response)
>     throws IOException, ServletException
>     {
>
>         HttpSession session = request.getSession();
>         SignupForm signupform = (SignupForm) form;
>         int page = signupform.getPage();
>
>         String label = request.getParameter("submit");
>         if (label != null)
>         {
>             if ("<< Prev".equals(label))                // Previous was
> pressed
>             {
>                 return mapping.findForward("page"+(page-1));
>             }
>             else if ("Next >>".equals(label))        // Next was pressed
>             {
>                 return mapping.findForward("page"+(page+1));        //
> Finished was pressed
>             }
>             else if ("Finish".equals(label))
>             {
>                 // Do finish work, add data to database, whatever
>             }
> ..... return(mapping.findForward("success"));
>
> I'm new to struts (about 2 weeks now). I tried to find examples but couldn't
> find any. So I hacked out this. Perhaps if someone has a better way we can
> all learn something new.
>
> I hope this helps.
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, April 24, 2001 9:51 AM
> Subject: wizard style example, anywhere?
>
> > Hello struts-users,
> >
> > I am very new to Struts (or JSP for that matter), and in need of
> > some examples that I can get my hands on.
> >
> > Specifically, an application that uses "wizard" style, multiple-page
> > input forms would be very nice. Couple of Struts documents I looked
> > mention that Struts works well with wizard style application, but I get
> > confused when it comes to writing struts-config.xml, JSPs that share
> > the same ActionForm or Action, etc.. I gotta see it working before I
> > start building mine.
> >
> > Good examples, anywhere, anyone?
> >
> > thanks,
> >
> > - kazumi
> >

Reply via email to