我们正在开发一个新的struts2自定义验证器。
如果用户帐号具有有效格式,则此验证程序将检查。
对于此验证程序,帐号不得为null
和整数。
有两种方法:
我们开发验证器并假设用户使用
使用前@IntRangeFieldValidator
和@RequiredFieldValidator
我们的验证器
@IntRangeFieldValidator(type = ValidatorType.FIELD, min = "1", key = "validate.int.min")
@RequiredFieldValidator(type = ValidatorType.SIMPLE, key = "validate.required")
@CustomValidator(type = "accountNumber", message = "Price must be a number")
public void setAccount(Integer accountNumber){}
通过这种方式,验证将如下所示
public class AccountNamuberValidator extends FieldValidatorSupport {
String fieldName = getFieldName();
String val = (String) getFieldValue(fieldName, object);
if (val == null && (value instanceof String ) &&... ) {
//we are assumption is not correct we just return
return;
}
}
正如您所看到的,我们不会处理我们假设通过整数验证或必需验证完成的任何验证。如果出现任何问题我们返回并且不添加任何归档错误。
接下来的方法是我们开发一个复杂的帐号 验证调用整数验证和必需的验证 在开始自己的验证检查之前。在这里,我们可以,一些如何, 相互验证链。
public class AccountNamuberValidator extends FieldValidatorSupport {
String fieldName = getFieldName();
String val = (String) getFieldValue(fieldName, object);
//Call struts required validaitor
//Call struts integer validaitor
//Go on with account number validation
}
因此使用此验证器将为:
@CustomValidator(type = "accountNumber", message = "Price must be a number")
public void setAccount(Integer accountNumber){}
现在有以下问题: