A model decouples your form from where the object comes from. For instance, any time I create a form for adding an entity, I almost always use the same form for editing the entity. The form simply takes a IModel<MyEntity> and doesn't care if that is new Model<Customer>(new Customer()) or new DBObjectModel<Customer>(Customer.class, 1234)
-- Jeremy Thomerson http://www.wickettraining.com On Thu, Mar 12, 2009 at 6:50 AM, Christian Helmbold < christian.helmb...@yahoo.de> wrote: > > Hello, > > I wonder why I should set a model to a form, if every form field just holds > a reference to the (same) model. Take a look at an example from Wicket in > Action (page 91): > > public class MyForm extends Form { > public MyForm(String id) { > super(id); > Customer customer = new Customer(); > setModel(new Model(customer)); // Why? > add(new TextField("name", new PropertyModel(customer, "name"))); > add(new TextField("street", > new PropertyModel(customer, "address.street"))); > } > protected void onSubmit() { > Customer customer = (Customer)getModelObject(); > String street = customer.getAddress().getStreet(); > // do something with the value oft the street property > } > } > > Is there an advantage over keeping a reference to customer in MyForm like > in the following example? > > public class MyForm extends Form { > private Customer customer = new Customer();; > public MyForm(String id) { > super(id); > //setModel(new Model(customer)); Not needed anymore. > add(new TextField("name", new PropertyModel(customer, "name"))); > add(new TextField("street", > new PropertyModel(customer, "address.street"))); > } > protected void onSubmit() { > //Customer customer = (Customer)getModelObject(); Not needed anymore. > String street = customer.getAddress().getStreet(); > } > } > > Thanks for enlightenment, > Christian > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >