struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From otisg <ot...@ureach.com>
Subject handling form errors in Actions, returning to form, prepopulating them without re-POSTING
Date Wed, 19 Feb 2003 17:39:13 GMT
Hello,

We are starting to use Struts and are
wondering how Struts users handle scenarios
such as this one:

1. /ShowForm action gets called, mapped to
ShowFormAction.
   ShowFormAction pulls a list of countries
from the DB (for ex.),
   stick that list in the HTTP request, and
'forwards' to 'ok', 
   which is a JSP with a form that consists
of blank form fields
   and a pull-down with countries that it
gets from the HTTP req.

2. A user fills the form, but forgets a
required field before he
   submits the form by POSTing to
/SubmitForm action.

3. /SubmitForm is mapped to SubmitFormAction
which detects a
   missing required field.  Is puts error
messages in an instance 
   of ActionErrors.  It now needs to forward
to something other
   than 'ok'.

What we want to happen at this point is:

A. Get the user back the input form
B. Display the error message
C. Make sure that all possible fields are
pre-populated with
   data that the user already entered
D. The pull-down in the form has that same
list of countries
E. The user is not prompted with 'Do you
want to re-POST' dialog

How can this be done?

In our Struts config we have:

    <!-- gets a list of countries from DB,
puts them in Request,
         forwards to 'ok'  -->
    <action path=      "/ShowForm"
            type=     
"net.wgen.ampng.action.ShowFormAction"
            scope=     "request">
        <forward name= "ok"      
path="/WEB-INF/v/form-ok.jsp"/>
        <forward name= "failure" 
path="/WEB-INF/v/form-not.jsp"/>
    </action>

    <!-- gets form data and processes it -->
    <action path=      "/SubmitForm"
            type=     
"net.wgen.ampng.action.SubmitFormAction"
            scope=     "request"
            validate=  "true"
            name=      "myForm"
            input=     "/WEB-INF/v/form.jsp">
        <forward name= "ok"      
path="/WEB-INF/v/ok.jsp"/>
        <forward name= "failure" 
path="/WEB-INF/v/form.jsp"/>
    </action>


What is the best way to handle this and
achieve A, B, C, D, and E that I mentioned
above?

If SubmitFormAction encounters an error
(e.g. a missing required field), what should
it forward to?  The original JSP in 'input'
attribute?  The JSP mapped to 'failure' (the
same JSP with the original form)?
Should it forward/chain to another Action
that redirects back to the original form?
(but that would lose the form data + error
messages in the Request, wouldn't it?) 
Something else?
Does the JSP with the form need to contain
the logic for pulling errors + form data
from the request, if it exists?

This seems like a situation that would be
very common and I feel that Struts has some
elegant way for handling this.

Thank you,
Otis


________________________________________________
Get your own "800" number
Voicemail, fax, email, and a lot more
http://www.ureach.com/reg/tag

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org


Mime
View raw message