0

我最近正在研究 apache commons 验证器。问题解释如下。

我的 Bean 有 2 个属性 fullName (String) & age (int)。两者都“需要”验证,但年龄也需要检查“整数”。

bean.setFullName("Tester"); -----> Will Pass
bean.setAge("Too Old"); ---> "required Pass but "integer" Fail.

results = validator.validate();

注意:如果 age 属性是 String 但它不是,并且 setAge 不会接受 String 值并在到达 validator.validate() 之前抛出异常,则上述是可能的。

在我们设置 bean 之前应该检查验证。在上述情况下,我需要使所有属性字符串都比在validation.xml 中检查整数/条件。

当我的年龄属性是整数时,我如何使用它。有点困惑。用日期、整数等处理 bean?

4

1 回答 1

4

我的 Bean 有 2 个属性 fullName (String) & age (int)。两者都“需要”验证,但年龄也需要检查“整数”

如果您的域类age已声明为 an,int那么您有两个选择

  1. 在调用 setAge(int a) 之前检查数据,您可以使用IntegerValidator
  2. 提供一个内部使用IntegerValidator的重载方法 setAge(String a)

我的推荐

commons-validator 仅适用于字符串(如果您希望一次验证整个 bean)并且不适合您的场景。我建议您放弃它以支持标准JSR 303。它功能丰富,有两个非常好的实现:

  1. 休眠验证器
  2. 阿帕奇 BVAL
于 2012-08-23T01:52:16.163 回答