struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Lipscombe" <adam.lipsco...@expensys.com>
Subject RE: Best practice for formbean scope and handling form validation errors
Date Fri, 04 Feb 2005 17:25:34 GMT
Thanks Jeff, your analysis is spot on.


In this instance the problem is this:

Form1 has a logic:iterate tag that iterates over a List held in
myActionForm.
The List is setup by the initAction.do action.

How do I preserve the List between actionform instances?
(It's not referenced in the JSP other than the logic:iterate tag)


Tia -Adam


-----Original Message-----
From: news [mailto:news@sea.gmane.org] On Behalf Of Jeff Beal
Sent: 04 February 2005 17:14
To: user@struts.apache.org
Subject: Re: Best practice for formbean scope and handling form validation
errors


Adam Lipscombe wrote:
<snip>
> But, if the scope of the "myActionForm" formbean is "request" a new 
> instance of the formbean is constructed when Form1.jsp is 
> re-displayed. Hence none of the data that it originally held in it is 
> present and the form fails. The formBean was originally populated by 
> /initAction.do In order to preserve the myAction formBean I have to 
> make its scope "session".
</snip>

Based on the rest of your email, this is what should be happening:

  1) initAction.do is populating myActionForm with data from your Model 
layer
  2) Form1.jsp pulls the values out of myActionForm and displays them to 
the user
  3) The request ends, and the myActionForm instance created in (1) is 
destroyed
  4) The user makes changes to the form values on Form1.jsp and submits 
the changes to the server
  5) Struts creates a new instance of myActionForm and populates it with 
values from the request. *If Form1.jsp was written correctly, all of the 
values populated from the Model in (1) along with any user changes from 
(4) should be in the request*
  6) myActionForm is validated.  If the validation fails, control is 
returned to (3) with the data from (4)

I'm a little unclear as to where exactly your problem is, but it seems 
that some or all of the values from the original myActionForm are not 
getting written to the user, and therefore are not being submitted with 
the second request to populate the second instance of myActionForm.

-- Jeff


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



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


Mime
View raw message