| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
利用<f:validator>标签的验证器
jsf页面通过validatorId调用验证器(该id在faces-config.xml中配置)
view plaincopy to clipboardprint?
<h:inputText id="inputTxt">
<h:outputLabel value="#{CusMes.inputTxtLabel}"/>
<f:validateLength minimum="5" maximum="20" /> 网管bitscn_com
<f:validator validatorId="emailValidator"></f:validator> 网管下载dl.bitscn.com
</h:inputText> 中国网管联盟bitsCN.com
<h:inputText id="inputTxt"> 网管网www_bitscn_com
<h:outputLabel value="#{CusMes.inputTxtLabel}"/>
<f:validateLength minimum="5" maximum="20" />
<f:validator validatorId="emailValidator"></f:validator>
</h:inputText>faces-config.xml中配置(配置调用的自定义验证器类)
view plaincopy to clipboardprint?
<validator> 网管u家u.bitsCN.com
<validator-id>emailValidator</validator-id> 网管论坛bbs_bitsCN_com
<validator-class>com.xgtimes.Validator.emailValidator</validator-class>
</validator> 中国网管联盟bitsCN.com
<validator>
网管下载dl.bitscn.com
<validator-id>emailValidator</validator-id> 中国网管联盟bitsCN.com
<validator-class>com.xgtimes.Validator.emailValidator</validator-class>
网管网www.bitscn.com
</validator>com.xgtimes.Validator.emailValidator类的实现:该类必须实现Validator 接口及接口抽象方法validate(),且validate()方法要求抛出ValidatorException异常,该异常以FacesMessage为参数抛出,旨在验证失败时,确定向视图发送的消息,如果验证成功则什么也不做,当然如果验证成功也要求发送消息的话,同样抛出ValidatorException异常即可。该类其实很简单,唯一要做的就是,确定在什么情况下应该抛出异常。另外,为了支持国际化,在抛出消息时,采用从资源文件com.xgtimes.CustomMessages.properties获取EMAIL_ERROR_MESSAGE键值,通过fc.getViewRoot().getLocale(),使该消息符合当前语言环境。(注:这里Email验证逻辑不完全规范)
view plaincopy to clipboardprint?
package com.xgtimes.Validator;
网管论坛bbs_bitsCN_com
import java.util.ResourceBundle; 网管网www_bitscn_com
import javax.faces.application.FacesMessage;
中国网管联盟bitsCN.com
import javax.faces.component.UIComponent;
网管u家u.bitscn@com
import javax.faces.context.FacesContext;
网管u家u.bitscn@com
import javax.faces.validator.Validator; 网管联盟bitsCN_com
import javax.faces.validator.ValidatorException;
public class emailValidator implements Validator {
public void validate(FacesContext arg0, UIComponent arg1, Object arg2) throws ValidatorException {
网管u家u.bitscn@com
String Value=(String)arg2; 网管论坛bbs_bitsCN_com
if(!isValid(Value)){
FacesMessage message=new FacesMessage(FacesMessage.SEVERITY_ERROR,this.getMes(arg0),null);
网管网www.bitscn.com
throw new ValidatorException(message); 网管网www_bitscn_com
}
网管联盟bitsCN_com
}
private boolean isValid(String value) {
boolean isvalid=true;
int index=value.indexOf("@");
if(index<=0||index>value.length()-6) {
isvalid=false;
}
网管网www_bitscn_com
return isvalid; 中国网管论坛bbs.bitsCN.com
} 中国网管联盟bitsCN.com
private String getMes(FacesContext fc) { 中国网管联盟bitsCN.com
String str=null;
ResourceBundle rb=ResourceBundle.getBundle("com.xgtimes.CustomMessages", fc.getViewRoot().getLocale()); 中国网管论坛bbs.bitsCN.com
str=rb.getString("EMAIL_ERROR_MESSAGE");
网管网www_bitscn_com
return str;
} 网管论坛bbs_bitsCN_com
}
网管论坛bbs_bitsCN_com
|
0
|
评论加载中…