" 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]