Rick,
i agree with you, i also use BeanUtils to populate my
forms.
But, this doesn't go far way from having your
ActionForms dependent on your TOs (or CustomTOs,
doesn' t matter).
As Sebastian said, i've heard a lot that TOs should
mirror or shouldn't be coupled to your ActionForms,
but i really don't how it's possible to build a very
modular architecture without this coupling.
--- Rick Reumann <[EMAIL PROTECTED]> escreveu:
> Sebastian Ho wrote:
>
> >
> > Say I retrieve a TO from database and convert it
> into a actionForm for
> > display. In this case I have 4 fields for my
> actionForm but 10 in my TO.
> > (6 are not needed for display). A user updates the
> 4 fields and the
> > action convert those into TO. In this case, the
> other 6 fields will be
> > reset to null(or empty) in my database!
> >
> > To prevent this, I actually need to use hidden
> fields in my JSP or some
> > other ugly solutions in my Action class. They are
> still dependent on
> > each others afterall.
>
> You can handle this several ways...
>
> For example, one solution is you create a
> TransferObject that refers to
> only the fields you care about - in this case the 4
> fields you
> mentioned. So your call to the business layer would
> return that
> TransferObject and you could then convert that
> easily to your form
> (using BeanUtils). Then going back the other way
> your business layer
> would take as an arguemnt the same type of
> TransferObject.
>
> I actually don't prefer the above, though, because
> say later on you
> decide you want to add another field to your form
> now your backend has
> to worry about handling a new object with different
> fields.
>
> I think the best solution is to simply make another
> call to get back the
> initial TO from the db, then simply use BeanUtils to
> populate that TO
> with the form fields. It will only set the fields in
> which it has the
> same names for so your other data will be fine.
>
> So it looks like...
>
> TransferObject to =
> BackendEnd.getMyTransferObject(..);
> MyForm myForm = (MyForm)form;
> BeanUtils.copyProperties( to, myForm);
> BackEnd.doUpdate( to );
>
> Pretty simple I think. Just make sure your
> ActionForm doesn't contain
> properties that you don't care about editing
> otherwise it will
> over-write the TO properties. If the JSP form is
> going to be very
> dyanmic, as in it will sometimes have some
> properties and sometimes have
> others, then you will have to use more complex
> 'tricks' such as using
> hidden variables.. or I'd just prefer to manually
> set the TO fields in
> the Action.
>
> --
> Rick
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>
>
_______________________________________________________
Yahoo! Acesso Gr�tis - navegue de gra�a com conex�o de qualidade!
http://br.acesso.yahoo.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]