The general workflow is for all requests to go through an Action before
they go out to a JavaServer Page. Any objects that need to be
initialized should be initialized by the Action, and then forwarded out
to the page. If the ActionForm is part of the Action's mapping, then the
controller will instantiate it for you, place it in the request, and
also pass a reference in the method signature. The <html:form> tag will,
as a last resort, initialize and ActionForm if none is present in the
request, but most developers do not depend on that behaviour. 

ActionForms are white-box objects and meant to be subclassed. If you
would like to subclass yours to include a value object, some developers
do find that convenient. 

An underlying differnce between Swing and web applications is that all
of the form properties are updated at once in a non-modal state, and not
one-by-one in a modal state. So, your form's do not have the option of
rejecting input as it entered. The ActionForm is needed to receive the
input, examine it, and then determine if it is to be accepted. Most GUI
components have a hidden String buffer that does that sort of thing.
HTML/HTTP does not provide that sort of thing, so we use ActionForms to
provide our own. The Actions are the place where the buffered data is
taken from the buffers (the Actionforms) and applied to the value object
of your choice. 

You can tie the value object to the ActionForm, and just have the Action
call a "getInfo()" method or whatever once the data is validated. Or,
following the principal of lazy initialization, you can validate the
input first, and the instanitate the value object when you ready for it
to be used. 

The ActionForm can be subclassed in any way that suits your application
design, so the choice is yours =:0)

-- Ted Husted, Husted dot Com, Fairport NY US
-- Java Web Development with Struts
-- Tel: +1 585 737-3463
-- Web: http://husted.com/about/services



[EMAIL PROTECTED] wrote:
> 
> I've read several topics debating this. These discussiosn leave the issue ambiguous. 
>I've written couple of notes in "struts-user," but received no response. This makes 
>me think it's an architectural issue, perhaps best addressed in this forum.
> 
> What I want to be able to do is described in my topic:
> http://japache.org/forums/thread.jsp?forum=1&thread=121582
> 
> Having the ActionForm store a reference to a value object allows us to easily use 
>the Struts framework to update values, but still provides an intermediate set of 
>values (that can be in an invalid state). Our Action classes (or whatever logic we'd 
>like) controls when to try to apply this data to the model.
> 
> (Updating this value-object, or some model directly, is what Swing does. In fact, 
>it's the *point* of Swing's approach to models -- earlier GUI component designs had 
>data stored with each component. This data had to explicitly applited to some model. 
>This was problematic in terms of syncing data across viewing components, hence the 
>Swing approach.)
> 
> Does the architecture have a standard way of handling this, or not? (Again -- the 
>key question is how/where to initialize the ActionForm property referencing the value 
>object.)
> --
> Posted via jApache.org
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to