If you can design your ActionForms to share the same property names (or
"protocol") as your data transfer objects, then it does become very easy
for an application to develop a standard, automatic way to populate the
DTO from the ActionForm properties. 

But since this is "pretty easy", there just isn't a lot of value to
adding this sort of thing to the base ActionForm. It could easily start
us down the slipperly slope where it looks like Struts is trying to
dictate what your dto or value objects are suppose to look like. 

We do have some standard Actions, like DispatchAction, in the framework
distiubtion. These are quite handy in some instances, but there's no
reason to add this functionality to the base Action. Likewise, if people
develop standard ActionForms with methods that might be handy in some
instances, these too can be published and offered to the community. 

AFAIC, if anything should be an interface, it should be the dto. Then
you can let your ActionForm implement the dto interface, instead of the
other way around. Applications that don't already do this may have other
bad habits, which in good conscious, we respectfully decline to
encourage =:-)

In Struts 1.1, between DynaActionForms and map-backed beans, the
maintenance issues for ActionForms are diminished or even eliminated,
and so like 90% of "the problem" becomes a non-issue.

-- 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:
> 
> You state:
> > The ActionForm contains a *proposed*
> > state change to the model or one of
> > its beans. As Web developers, it's
> > our job to confirm that the state
> > change is reasonable (validate the
> > input) and ~then~ update the model.
> 
> Using a value object would be a standard way of handling this. If the ActionForm 
>were coded to have a property that references a value object, then you've allowed 
>Struts to populsate its fields and have still separated the code that applies the new 
>values. (In other words, your server application will still have a method named 
>something like "setInfo(MyValueObject vo)" called by our Action classes.)
> 
> This would all be pretty easy, except that as far as I can tell, there is no way to 
>initialize an ActionForm other than hard-code the creation of the view's ActionForm 
>in the Action.
> 
> --
> 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