" F: validateRegex " ist ein neues Validator-Tag in JSF 2.0, das zum Validieren der JSF-Komponente mit einem bestimmten Muster für reguläre Ausdrücke verwendet wird. Zum Beispiel,
<h:inputSecret id="password" value="#{user.password}">
<f:validateRegex pattern="((?=.** \d)(?=.** [a-z])(?=.** [A-Z])(?=.** [@#$%]).{6,20})"/>
</h:inputSecret>
Das obige Regex-Muster ist eine Zeichenfolge von 6 bis 20 Zeichen mit mindestens einer Ziffer, einem Großbuchstaben, einem Kleinbuchstaben und einem Sonderzeichen ("@ # $%"). Dies ist stark und komplex genug für eine Kennwortüberprüfung. Siehe folgenden Link://reguläre Ausdrücke/Gültigkeitsprüfung-Kennwort mit regulärem Ausdruck/[Kennwortüberprüfung mit regulärem Ausdruck].
"f: validateRegex" Beispiel
Ein JSF 2.0-Beispiel, das die Verwendung des Tags " f: validateRegex " zum Erstellen eines Validators für starke Kennwörter veranschaulicht.
1. Managed Bean
Eine vom Benutzer verwaltete Bean.
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. JSF-Seite
Auf der JSF-XHTML-Seite wird die Verwendung des Tags " f: validateRegex " angezeigt, um sicherzustellen, dass das Feld "password" mit dem angegebenen Muster für reguläre Ausdrücke übereinstimmt.
<?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. Demo
Wenn das Kennwort nicht mit dem regulären Ausdruck übereinstimmt, zeigen Sie die Fehlermeldung an.
Quellcode herunterladen
Download - JSF-2-ValidateRegex-Example.zip (9 KB)
Referenz
2 validateRegex JavaDoc]. Link://reguläre Ausdrücke/Gültigkeitsprüfung-Passwort-mit-regulärer Ausdruck/[Passwort
Validierung mit regulärem Ausdruck]