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

Reply via email to