Bonjour, j'utilise GWT & GWT-EXT pour faire un formulaire simple mais auquel je veux ajouter un certain nombre de contrôle comme, la comparaison entre le mot de passe et le mot de passe de confirmation.
Ce contrôle ne pose pas de souci car il s'exécute totalement coté client.
Voici le code pour information...
Donc, sur ce même principe, j'essaye de réaliser une validation mais cette fois en remoteService.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 final TextField motDePasse = new TextField("Mot de passe",EnregistrementFormBean.FIELD_MOT_DE_PASSE,350); motDePasse.setAllowBlank(false); motDePasse.setPassword(true); fs1.add(motDePasse); TextField motDePasseC = new TextField("Mot de passe de confirmation",EnregistrementFormBean.FIELD_MOT_DE_PASSE_CONFIRMATION,350); motDePasseC.setAllowBlank(false); motDePasseC.setPassword(true); motDePasseC.setValidator(new Validator() { // Ajout d'une validation sur l'égalité des mots de passes (motDePasse == motDePasseC) public boolean validate(String value) throws ValidationException { if( value == null ) { return false; } if( !value.equals(motDePasse.getValueAsString())) { throw new ValidationException("Les deux mots de passes ne sont pas identiques !"); } return true; } }); fs1.add(motDePasseC);
J'ai donc un service appelé "identifiantExistant" me retournant 'true' ou 'false'.
Rien de plus simple !
Je cherche à présent à ajouter cet appel dans un validateur comme pour l'exemple précédent mais je sèche complètement. J'en comprend bien la raison mais je ne trouve pas d'alternatives...
Voici le code de cette partie :
Évidement, ce code ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 final TextField identifiant = new TextField("Identifiant", EnregistrementFormBean.FIELD_IDENTIFIANT, 350); identifiant.setAllowBlank(false); identifiant.setMinLength(3); identifiant.setMaxLength(20); // Ajout d'un contrôle serveur sur l'existance de cet identifiant identifiant.setValidator(new Validator() { public boolean validate(String value) throws ValidationException { if( value == null) { return false; } IdentificationService service = (IdentificationService) IdentificationService.Util.getInstance(); boolean isIdentifiantExistant = service.identifiantExistant(value); if( isIdentifiantExistant) { throw new ValidationException("Cet identifiant est déjà enregistré dans notre système."); } return true; } }); fs1.add(identifiant);
Une petite idée ?
Merci par avance
Partager