Validation jsf InputEx中仅数字的true格式

Validation jsf InputEx中仅数字的true格式,validation,jsf,Validation,Jsf,我在jsf中有InputEx,它必须只有数字数据。我有这个代码。这个模式是真的吗 @FacesValidator("namelValidator") public class EmailValidator implements Validator{ private static final String NAME_PATTERN = "[0-9]"; private Pattern pattern; private Matcher matcher; publ

我在jsf中有InputEx,它必须只有数字数据。我有这个代码。这个模式是真的吗

@FacesValidator("namelValidator")
public class EmailValidator implements Validator{

    private static final String NAME_PATTERN = "[0-9]";

    private Pattern pattern;
    private Matcher matcher;

    public NAMElValidator(){
        pattern = Pattern.compile(NAME_PATTERN);
    }

    @Override
    public void validate(FacesContext context, UIComponent component,
                         Object value) throws ValidatorException {

        matcher = pattern.matcher(value.toString());
        if(!matcher.matches()){

            FacesMessage msg =
                    new FacesMessage("E-mail validation failed.",
                            "Invalid name format.");
            msg.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(msg);

        }

    }
}

那只是一个数字。你可以用

private static final String NAME_PATTERN = "[0-9]+";
或者更紧凑

private static final String NAME_PATTERN = "\d+";

您的问题的代码格式有点混乱。请使用问题下方的“编辑”链接并修复它。我不确定这是否是电子邮件验证程序?如果此验证程序的唯一目的/意图是使用正则表达式-RegEx,则只需使用
即可实现。在这种情况下,不需要与自定义验证器跳舞。是的,它不适用于电子邮件。如果我想让InputEx只接受字符而不接受数字的firstName验证器,并且我想使用客户端验证器,那么解决方案是什么?在backBean中,我有这段代码,在doadd()中如何避免如果上面的验证类为false?如果您有一个与字段关联的验证程序,那么如果验证失败,它将阻止备份bean中的值被更新,因此您不必担心它。