Dans le billet précédent nous avons vu comment afficher un message d'erreur de validation du formulaire. Dans cette étape nous allons donc en profiter pour ajouter des éléments de validation sur les champs du formulaire afin de s'assurer que les données renseignées par l'utilisateur sont valides.

Un formulaire valide possède la forme suivante :

  • Le nom est obligatoire et possède un maximum de 10 caractères
  • Le prénom est obligatoire
  • L'email est facultatif mais doit posséder un pattern de forme "email"
  • La date de naissance est facultative mais doit être de forme "date"

Ajouter les éléments de validation aux composants Java

Nous avons déjà vu comment valider la forme date en forçant le type du composant TextField associé. Intéressons nous donc aux autres éléments de validation :

  1. public class EditContactPage extends TemplatePage {
  2.  
  3. public EditContactPage() {
  4. super();
  5. add(new EditContactFrom("editform", new Contact()));
  6.  
  7. }
  8.  
  9. public class EditContactFrom extends Form {
  10.  
  11. public EditContactFrom(String id, Contact contact) {
  12. super(id);
  13.  
  14. setModel(new CompoundPropertyModel(contact));
  15.  
  16. add(new TextField("prenom").setRequired(true));
  17. add(new TextField("nom").setRequired(true).add(new MaximumLengthValidator(10)));
  18. add(new TextField("dateNaissance", Date.class));
  19. add(new TextField("email").add(EmailAddressValidator.getInstance()));
  20.  
  21. add(new FeedbackPanel("feedback"));
  22. }
  23.  
  24. }
  25. }

La seule méthode setRequired(boolean) appartenant aux éléments de type FormComponent permet de forcer le remplissage d'un champ.

Pour les autres contraintes, Wicket nous fournit des Validator prêts à l'emploi, qui correspondent aux besoins les plus courants. De plus, il est possible de créer ses propres Validator rapidement et simplement à l'aide du contrat IValidator et de son implémentation de base AbstractValidator.
Chaque champ peut posséder un nombre illimité de Validators, qu'il est possible d'ajouter de manière chaînée.

Vérifions maintenant que la validation du formulaire suit notre contrat de départ : http://localhost:8080/zencontact

FeedbackPanel

Parfait, nous sommes désormais certains que l'utilisateur ne peut ajouter de données erronées, il ne reste plus qu'à persister ce nouveau contact créé. Nous verrons cela dans notre prochain billet.

Précédent : Zencontact 8 - FeedbackPanel
Suivant : Zencontact 10 - Persistance du contact