" F: validateRegex " est une nouvelle balise de validation dans JSF 2.0, utilisée pour valider le composant JSF avec un modèle d’expression régulière donné. Par exemple,
<h:inputSecret id="password" value="#{user.password}"> <f:validateRegex pattern="((?=.** \d)(?=.** [a-z])(?=.** [A-Z])(?=.** [@#$%]).{6,20})"/> </h:inputSecret>
Le modèle de regex ci-dessus est une chaîne de 6 à 20 caractères avec au moins un chiffre, une lettre majuscule, une lettre minuscule et un symbole spécial («@ # $%»). C’est assez fort et complexe pour une validation de mot de passe, voir ce lien://expressions-régulières/comment-valider-mot-de-passe-avec-expression-régulière/[validation de mot de passe avec expression régulière].
Exemple “f: validateRegex”
Exemple JSF 2.0 montrant l’utilisation de la balise « f: validateRegex » pour créer un validateur de mot de passe fort.
1. Bean géré
Un haricot géré par l’utilisateur.
package com.mkyong; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="user") @SessionScoped public class UserBean implements Serializable{ String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2. Page JSF
JSF XHTML, montrez l’utilisation de la balise “ f: validateRegex ” pour vous assurer que le champ “mot de passe” correspond au modèle d’expression régulière donné.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" > <h:body> <h1>JSF 2 validateRegex example</h1> <h:form> <h:panelGrid columns="3"> Enter your password : <h:inputSecret id="password" value="#{user.password}" size="20" required="true" label="Password"> <f:validateRegex pattern="((?=.** \d)(?=.** [a-z])(?=.** [A-Z])(?=.** [@#$%]).{6,20})"/> </h:inputSecret> <h:message for="password" style="color:red"/> </h:panelGrid> <h:commandButton value="Submit" action="result"/> </h:form> </h:body> </html>
3. Démo
Si «password» ne correspond pas au motif regex, affichez le message d’erreur.
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2010/10/JSF-2-ValidateRegex-Example.zip[JSF-2-ValidateRegex-Example.zip](9 Ko)
Référence
2 validateRegex JavaDoc]. link://expressions-régulières/comment-valider-le-mot-de-passe-avec-expression-régulière/[Mot de passe
validation avec expression régulière]
lien://tag/jsf2/[jsf2]lien://tag/regex/[regex]lien://tag/validation/[validation]