Hello,
I'm interested in creating a single Form that will accommodate the
following use cases
1) display blank for creating new records
2) pre-populate for editing existing records
3) map submitted values on to an existing domain object
4) accommodate two actions, Save Draft -or- Publish
I'm following Wicket in Action and within my Form constructor I create my
model, like this
CnavUrl cnavUrl = new BasicCnavUrl();
IModel model = new Model((Serializable) cnavUrl);
setModel(model);
I then use PropertyModel
add(new TextField("url", new PropertyModel(cnavUrl, "url")));
For the two actions, I'm creating the Button objects like this
add(new Button("publish", model) {
@Override
public void onSubmit() {
CnavUrl cnavUrl = (CnavUrl) getModelObject();
System.out.println("publish");
}
});
Some problems I can't figure out. The code to create the button complains
that it requires a CnavUrl but gets back a String.
It seems that a new BasicCnavUrl is created once with the Form. What
happens on subsequent calls? Can I always expect my model to have the data
from the current form submission?
Is there a best way to incorporate the idea of an edit, where the model is
pre-populated from a data source and pre-fills the Form fields?
Thanks,
Daniel