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
