On 2/28/06, R.Vijayaraghavan <[EMAIL PROTECTED]> wrote: > I do something like: > > public class ProductAction extends Action > { > execute() > { > String name = (String)PropertyUtils.getSimpleProperty(form, > "name"); > String age = (String)PropertyUtils.getSimpleProperty(form, > "age"); > ProductModel model = new ProductModel(); > model.setName(name); > model.setAge(age); > model.saveToPersistentStore(); > } > } > > I was wondering if the ActionForm can be used as a DTO. Something like this, > > public class ProductAction extends Action > { > execute() > { > ProductModel model = new ProductModel(); > model.setForm(form); // action form reference which > the execute method > gets > model.saveToPersistentStore(); > } > } > > I do not know which method will be better. I don't even know if there is any > other technique we should follow as Oshima pointed it.
Passing an action form to the model is considered a bad move as you are coupling your model to struts. The idea being that your may want to change the view technology. Usually folk suggest having some helper/util classes that convert forms to business objects, BeanUtils is often enough when your form properties are the same as your business object properties. Mark > > regards, > vijay. > > > > -----Original Message----- > > From: Oshima Tlholoe [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, February 28, 2006 2:53 PM > > To: Struts Users Mailing List > > Subject: Re: which method is better > > > > > > With my rudimentary knowledge,I dont think its advisable for your Action > > classes to talk directly to your business layer/model classes, > > Why don't you > > have a business delegate/session facade or Service Locator sitting between > > your Action Classes and the model classes, this insulates your action > > classes from your business layer and it even makes testing > > simpler. You not > > going to have test cases that span multiple layers. > > Let your Actions pull out data from the ActionForm, wrap it and pass it to > > the Service Locator, then the Service Locator then handles the > > rest, calling > > all the related model classes. > > > > > > > > On 2/28/06, R.Vijayaraghavan <[EMAIL PROTECTED]> wrote: > > > > > > Hello, > > > > > > I usually have set and get methods for all properties in my Model class. > > > After submitting a form, I pull out all the property values > > (form fields) > > > in > > > the Action class from the ActionForm object, set the values of all > > > properties in the model from the action class and then call a particular > > > method in the model class for final submission to the database. > > > > > > I wanted to know thether the above mentioned method is better or is it > > > better to pass the form reference itself to the Model class which then > > > sets > > > the values. > > > > > > In situation 2, I do not have to take care of the various String > > > references > > > that I create. I simply will pass the ActionForm object to the Model > > > class. > > > > > > regards, > > > vijay. > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > -- > > Regards > > Name : Oshima Tlholoe > > Cell No: +2773 342 4393 > > Tel No : +2712 841 4355(w) > > E-mail : [EMAIL PROTECTED] > > simplicity is the ultimate sophistication > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]