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]

Reply via email to