Vous avez des améliorations (ou des corrections) à proposer pour ce document :
je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
La validation de formulaire :Validation personnalisée
import javax.faces.application.*;
import javax.faces.component.*;
import javax.faces.context.*;
class LoginBean {
// Suite du code !!!
public void validateEmail(
FacesContext context, UIComponent toValidate, Object value
) {
String email = (String) value;
if (email.indexOf('@') == -1) {
( (UIInput) toValidate).setValid(false);
String message = "Mauvais format d'email";
context.addMessage(
toValidate.getClientId( context ),
new FacesMessage( message )
);
}
}
Dominique LIARD - 2006 .. 2018
<numéro>
Notes:
JSF vous permet de mettre en ?uvre vos propres mécanismes de validation. La manière de procéder est similaire à la seconde technique de gestion d'évènements étudié. Néanmoins, la signature d'une méthode de validation est sensiblement différente de celle d'un gestionnaire d'évènements : il n'y a pas d'objet d'évènement, par contre le context JSF, le tag à valider ainsi que la nouvelle valeur à tester vous sont passés en paramètres.
Dans les cas ou la valeur renseignée est incorrecte, il faut marquer le tag comme contenant une données erronée (invocation de la méthode setValid). Il faut aussi dans ce cas, passer au gestionnaire des messages d'erreurs l'information sur la nouvelle erreur (invocation de la méthode addMessage).
Notez aussi, qu'un certain nombre de packages sont requis pour pouvoir compiler cet exemple (javax.faces.application.*, javax.faces.component.* et javax.faces.context.*).
Enfin, sachez qu?il vous est possible d?utiliser des expressions régulières pour réaliser vos validations. Par exemple vous pouvez remplacer le test de l?exemple ci-dessus par cette ligne :
if ( email.matches(".+@.+") == false ) { ...
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :