soufan

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            22 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks
          (轉)
          下面是一個email驗證器的示例: ?

          EmailValidator.java:

          import?javax.faces.application.FacesMessage;
          import?javax.faces.component.UIComponent;
          import?javax.faces.context.FacesContext;
          import?javax.faces.validator.Validator;
          import?javax.faces.validator.ValidatorException;
          ?
          public?class?EmailValidator?implements?Validator?{
          ?
          ????private?String?errorMessage?=?null;
          ?
          ????public?void?setErrorMessage(String?errorMessage)?{?this.errorMessage?=?errorMessage;?}
          ?
          ????public?void?validate(FacesContext?context,?UIComponent?component,?Object?value)?{
          ????????if?(null?==?value)?{
          ????????????return;
          ????????}
          ?
          ????????String?email?=?(String)?value;
          ?
          ????????if?(-1?==?email.indexOf('@',?1)?||?-1?==?email.indexOf('.'))?{
          ????????????if?(errorMessage?!=?null)?{
          ????????????????throw?new?ValidatorException(new?FacesMessage(Tags.eval(errorMessage)));
          ????????????}?else?{
          ????????????????//?use?default?validator?message
          ????????????????throw?new?ValidatorException(null);
          ????????????}
          ????????}
          ????}
          }

          Tags.java:

          import?javax.faces.application.Application;
          import?javax.faces.component.UIComponent;
          import?javax.faces.component.UIInput;
          import?javax.faces.context.FacesContext;
          import?javax.faces.el.MethodBinding;
          import?javax.faces.el.ValueBinding;
          import?javax.faces.event.ValueChangeEvent;
          import?javax.faces.webapp.ConverterTag;
          import?javax.faces.webapp.UIComponentTag;
          ?
          public?class?Tags?{
          ???//?Converter?Tags?and?Validator?Tags?helper?methods
          ????public?static?String?eval(String?expression)?{
          ????????if?(expression?!=?null?&&?UIComponentTag.isValueReference(expression))?{
          ????????????FacesContext?context?=?FacesContext.getCurrentInstance();
          ????????????Application?app?=?context.getApplication();
          ????????????ValueBinding?vb?=?app.createValueBinding(expression);
          ????????????return?""?+?vb.getValue(context);
          ????????}?else?{
          ????????????return?expression;
          ????????}
          ????}
          }

          ?

          ?

          ?

          EmailValidatorTag.java:

          import?javax.faces.component.UIComponent;
          import?javax.faces.validator.Validator;
          import?javax.faces.webapp.ValidatorTag;
          import?javax.servlet.jsp.JspException;
          ?
          public?class?EmailValidatorTag?extends?ValidatorTag?{
          ?
          ????private?String?errorMessage?=?null;
          ?
          ????public?EmailValidatorTag()?{
          ????????setValidatorId("Email");
          ????}
          ?
          ????public?void?setErrorMessage(String?errorMessage)?{?this.errorMessage?=?errorMessage;?}
          ?
          ????public?Validator?createValidator()?throws?JspException?{
          ????????EmailValidator?validator?=?(EmailValidator)?super.createValidator();
          ????????validator.setErrorMessage(errorMessage);
          ?
          ????????return?validator;
          ????}
          ?
          ????public?void?release()?{
          ????????errorMessage?=?null;
          ????}
          }

          ?

          ?

          faces-config.xml:

          <validator>
              <validator-id>Email</validator-id>
              <validator-class>EmailValidator</validator-class>
          </validator>
          

          mytags.tld:

          <?xml version="1.0" encoding="UTF-8"?>
           
          <!DOCTYPE taglib PUBLIC
              "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
              "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
           
          <taglib>
           
          <tlibversion>1.0</tlibversion>
          <jspversion>1.2</jspversion>
          <shortname>mytags</shortname>
          <uri>mytags</uri>
           
          <tag>
              <name>validateEmail</name>
              <tagclass>EmailValidatorTag</tagclass>
           
              <attribute>
                  <name>errorMessage</name>
                  <description>message if a validation error occurs</description>
              </attribute>
          </tag>
           
          </taglib>
          

          ?

          mypage.jsp:

          <h:inputText id="email" required="true">
              <mytags:validateEmail errorMessage="#{bean.message}"/>
          </h:inputText>
          
          posted on 2006-12-19 16:02 soufan 閱讀(242) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 波密县| 吉林市| 马鞍山市| 思南县| 宜宾市| 法库县| 怀化市| 斗六市| 忻州市| 牙克石市| 安福县| 炉霍县| 华池县| 西和县| 蓝田县| 八宿县| 当雄县| 长沙县| 从化市| 四会市| 淮南市| 馆陶县| 日喀则市| 佛山市| 双江| 连平县| 仙居县| 惠水县| 乌拉特中旗| 东台市| 桓仁| 沛县| 龙胜| 永德县| 浦江县| 浮梁县| 彭泽县| 商城县| 四会市| 临沭县| 龙口市|