Validation jsf InputEx中仅数字的true格式
我在jsf中有InputEx,它必须只有数字数据。我有这个代码。这个模式是真的吗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
@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中的值被更新,因此您不必担心它。