soufan

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            22 隨筆 :: 0 文章 :: 0 評(píng)論 :: 0 Trackbacks
          (轉(zhuǎn))
          下面是一個(gè)email驗(yàn)證器的示例: ?

          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 閱讀(241) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 兴安县| 政和县| 壶关县| 昆明市| 南丰县| 景东| 堆龙德庆县| 青铜峡市| 荣昌县| 文山县| 八宿县| 蒙自县| 尼木县| 班玛县| 汉沽区| 金川县| 衡东县| 宿松县| 阜南县| 克东县| 尚义县| 蒲江县| 钟山县| 怀远县| 板桥市| 广昌县| 芷江| 分宜县| 保亭| 旌德县| 高州市| 富川| 清徐县| 十堰市| 鹤庆县| 棋牌| 扎赉特旗| 深圳市| 竹溪县| 沂源县| 南城县|