I have two simple use cases that I can't figure out how to implement with Wicket.

Example form. Pretty basic and works.

public class CreateAdministratorPage extends WebPage
{
    @SpringBean
    private CreateAdministratorFacade mCreateAdministratorFacade;

    public CreateAdministratorPage()
    {
        add(new FeedbackPanel("feedback"));
        add(new AdministratorForm("administratorForm", new Administrator()));
    }

    class AdministratorForm extends Form
    {
        public AdministratorForm(String name, Administrator administrator)
        {
            super(name, new CompoundPropertyModel(administrator));
            add(new RequiredTextField("name"));
            add(new RequiredTextField("emailAddress").add(EmailAddressPatternValidator.getInstance()));
        }

        @Override
        protected void onSubmit()
        {
            Administrator administrator = (Administrator) getModelObject();
            mCreateAdministratorFacade.createAdministrator(administrator);
        }
    }
}

1. Checking a confirmationField.

I want to add an emailConfirmation field to the form. But, I don't want to add this field to the Administrator object. What is common practice to implement this? Create a new AdministratorModel like this:

public class AdministratorModel {
    public Administrator administrator;
    public String emailConfirmation;
}

together with:

        public AdministratorForm(String name, AdministratorModel administrator)
        {
            super(name, new CompoundPropertyModel(administrator));
            add(new RequiredTextField("administrator.name"));
            add(new RequiredTextField("administrator.emailAddress").add(EmailAddressPatternValidator.getInstance()));
            add(new RequiredTextField("emailAddressConfirmation").add(EmailAddressPatternValidator.getInstance ()));
        }

Or is there an easier way?

2. Doing validation on submit.

The code above works, but what I really need to do is something like this:

        protected void onSubmit()
        {
            Administrator administrator = (Administrator) getModelObject();
            result = mCreateAdministratorFacade.createAdministrator(administrator);
            if (result == SUCCESS) {
                REDIRECT TO A SUCCESS PAGE BASED ON THE EMAIL ADDRESS
            } else {
                SET A GLOBAL FORM ERROR, SHOW THE FORM AGAIN
            }
        }

I read the Form documentation but it is not really clear how the Form workflow is setup and where I need to plugin.

 S.

_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to