2012-08-17 68 views
0

我正在使用最新的apache commons validator。问题解释如下。Apache公共验证器,要验证的bean属性都应该是字符串?

我的豆是具有2个属性全名(字符串)&年龄(INT)。验证“必需”,但需要检查“整数”的年龄。

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

results = validator.validate(); 

注:以上是可能的,如果年龄属性为字符串,但它不是和setAge不会接受字符串值,然后在到达之前validator.validate抛出异常()。

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

我怎么用这个工作时,我的年龄属性为整数。有点困惑。处理与日期,整数等豆?

+0

@balusc,请帮助 – Pirzada 2012-08-17 22:54:40

+0

@bozho,任何帮助,请 – Pirzada 2012-08-20 00:08:04

+0

您能不能给异常就一些细节问题你看? – pd40 2012-08-21 10:07:04

回答

4

我的豆是具有2个属性全名(字符串)&年龄(INT)。在上验证“必需”,但需要检查“整数”的年龄以及

如果您的域名类声明age已经是一个int那么你有两个选择

  1. 检查数据调用setAge之前(INT一个),你可以使用IntegerValidator
  2. 提供一个重载的方法setAge(字符串一)的internall使用IntegerValidator

我的建议

commons-validator只对字符串有效(如果你希望你的整个bean一次被验证)并且不适合你的场景。我建议你倾倒标准的JSR 303。它含有丰富的功能,并且具有两个非常好的实现:

  1. Hibernate Validator
  2. Apache BVAL
+0

感谢您的回复。非常丰富。我有2个问题。我使用Servlet/JSP项目作为noob(无框架)。什么应该是验证的首选方式(在开发中使用,只是建议)?有人建议我使用BeanUtils。映射属性? 。任何想法。 – Pirzada 2012-08-23 03:13:49

+0

我仍然建议使用JSR 303.它可以独立于任何框架独立使用。用法很简单。如果您需要帮助,请发布更多问题,我会尽力提供帮助。 – 2012-08-23 03:37:02

+0

给我一些时间来看看您的解决方案,并会发布任何问题。在日子结束之前,我会奖励你的赏金。你认为BeanUtils吗?映射属性可以解决我与apache commons validator整数属性? – Pirzada 2012-08-23 12:24:07