Exemple JSF 2 validateRegex

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

Exemple jsf2-ValidateRegex

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]