On Mon, 10 Mar 2003, Puneet Agarwal wrote:
> Date: Mon, 10 Mar 2003 11:31:29 -0000 > From: Puneet Agarwal <[EMAIL PROTECTED]> > Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>, > Puneet Agarwal <[EMAIL PROTECTED]> > To: Struts Users Mailing List <[EMAIL PROTECTED]> > Subject: Re: [Design Pattern]FormBean in Model Layer > > Yeah I am going to adopt this. I am not very sure of how exactly am I going > to do that(at the moment). But yes it sounds too good. > I do *not* agree with the idea of using an ActionForm (either DynaForm or not) as a DTO. Using a custom interface gets around one of the problems (introducing a dependency on Struts), but not around the biggest one -- the data types in a correctly written ActionForm are wrong for the business tier. In order to fulfill its purpose, the ActionForm properties must allow incorrect input to be redisplayed -- for example, a field that accepts an integer should allow the user to type "1a3" instead of "123" and have "1a3" redisplayed with the error message. In order for this to work, the ActionForm property must be a String. Yet, in a properly designed DTO, the property type would be "int". The best design practice is to create a separate DTO object (or DynaBean) with the correct data types, and use BeanUtils.copyProperties() to copy the values -- with appropriate conversions -- in your Action that accepts the form. You know that you won't get conversion errors because they would have been caught in the validation checks that preceed calling the Action. > Thanks > Puneet Agarwal Craig McClanahan --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]