“ f:validateRegex ”是JSF 2.0中的一个新的验证器标签,该标签用于验证具有给定正则表达式模式的JSF组件。 例如,
<h:inputSecret id="password" value="#{user.password}">
<f:validateRegex pattern="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})" />
</h:inputSecret>
上述正则表达式模式需要6到20个字符的字符串,其中至少应包含一位数字,一个大写字母,一个小写字母和一个特殊符号(“ @#$%”)。 这足够强大且复杂,足以进行密码验证,请参阅带有正则表达式的密码验证 。
“ f:validateRegex”示例
一个JSF 2.0示例,展示了如何使用“ f:validateRegex ”标记来创建强密码验证器。
1.托管豆
用户管理的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页面
在JSF XHTML页面上,显示“ f:validateRegex ”标签的使用,以确保“ password”字段与给定的正则表达式模式匹配。
<?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.演示
如果“密码”与正则表达式模式不匹配,则显示错误消息。
下载源代码
下载它– JSF-2-ValidateRegex-Example.zip (9KB)