网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 核心技术 > 高级编程 > JSF下Email验证器完全实例  

JSF下Email验证器完全实例

2008-06-15  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

利用<f:validator>标签的验证器
    jsf页面通过validatorId调用验证器(该id在faces-config.xml中配置)
    view plaincopy to clipboardprint?
    <h:inputText id="inputTxt">

网管下载dl.bitscn.com

            <h:outputLabel value="#{CusMes.inputTxtLabel}"/>

网管网www_bitscn_com

            <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}"/>

网管联盟bitsCN_com

                <f:validateLength minimum="5" maximum="20" />

网管u家u.bitscn@com

                <f:validator validatorId="emailValidator"></f:validator>

中国网管论坛bbs.bitsCN.com

        </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>

网管u家u.bitscn@com

    </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;

网管u家u.bitsCN.com

    public class emailValidator implements Validator {

网管论坛bbs_bitsCN_com

        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)){

中国网管联盟bitsCN.com

                FacesMessage message=new FacesMessage(FacesMessage.SEVERITY_ERROR,this.getMes(arg0),null);

网管网www.bitscn.com

                throw new ValidatorException(message); 网管网www_bitscn_com

            }

网管联盟bitsCN_com

        }

网管下载dl.bitscn.com


        private boolean isValid(String value) {

网管网www.bitscn.com

            boolean isvalid=true;

网管bitscn_com

            int index=value.indexOf("@");

网管网www_bitscn_com

            if(index<=0||index>value.length()-6) {

网管bitscn_com

                isvalid=false;

网管u家u.bitsCN.com

            }

网管网www_bitscn_com

            return isvalid; 中国网管论坛bbs.bitsCN.com

        } 中国网管联盟bitsCN.com


        private String getMes(FacesContext fc) { 中国网管联盟bitsCN.com

            String str=null;

网管网www_bitscn_com

            ResourceBundle  rb=ResourceBundle.getBundle("com.xgtimes.CustomMessages", fc.getViewRoot().getLocale()); 中国网管论坛bbs.bitsCN.com

            str=rb.getString("EMAIL_ERROR_MESSAGE");

网管网www_bitscn_com

            return str;

网管bitscn_com

        } 网管论坛bbs_bitsCN_com

    }
网管论坛bbs_bitsCN_com


TAGs
 上一篇:JSF Tour 5 MyFaces Intro   下一篇:jacob中的QueryInterface()方法
JSF下Email验证器完全实例 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: