JSF中的数据验证(1,前台验证 2,使用已有验证器 3,通过backing bean 4,自定义验证器)...

1,


2,


3,通过backing bean进行验证

首先要在后台backing bean写相应的验证方法。

如下例子是为了验证输入数据是否是由数字和字母组成。
 
java 代码
 
public void validateWord(FacesContext context, UIComponent toValidate, Object value) {        String word = (String) value;//得到输入的直        String reg = "^[A-Za-z0-9]+$";//根据验证要求写出相应正则表达式(各种验证表达式见本文最后)        PatternCompiler compiler = new Perl5Compiler();        Pattern pattern;        try {            pattern = compiler.compile(reg);           PatternMatcher matcher = new Perl5Matcher();        if(!matcher.contains(word, pattern)) {//判断是否匹配,如果不匹配输出相应错误信息            ((UIInput)toValidate).setValid(false);            FacesMessage message = new FacesMessage("Value accepts alphanumeric
                                 without space and symbols!");       //FacesMessage message = new FacesMessage("error message");          //context.addMessage(context.getViewRoot().findComponent("pForm:sizeLength")       .getClientId(context),message);       //以上注释部分的意思是说将错误信息存储到页面id="pForm:sizeLength"的控件里而非当前控件            context.addMessage(toValidate.getClientId(context), message);        }        } catch (MalformedPatternException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }  


其次便是在页面调用该验证方法,例子如下:

JSF 代码
 
  1. <h:inputText value="#{containerListBean.container.assetCode}"   
  2. validate="#{containerListBean.validateWord}" styleClass="inputTextBox">  
  3. <h:message for="AssetCode" styleClass="errorMessage"></h:message>  


OK了,其他的就不用说了。



4,自定义验证器






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值