春天 - 混合注释和基于验证,验证(Spring - mixing annotation and v

2019-09-30 06:08发布

我下面的问题,是一个普通的弹簧模型(我们称之为“A”)与一些验证相关的注解。 接着,有一个命令对象(正规POJO类,定义了某些字段,其中之一是A型的对象)。 该命令对象实现验证程序接口,以使结合和审定工作在控制器的方法。

的问题是,如何利用该命令对象内部注解配置验证的(给定它实现验证程序接口,因此它具有支承件()和验证()方法)。

我试图才达到是有被重用,与系统的其他部分的一些较重的业务逻辑验证的混合模型基本验证。

Answer 1:

我有完全相同的问题。 我想用自动标注为验证“简单的事情”,再复杂的验证逻辑传递给我定制的春季验证。 但每当我设置控制器的验证,所有的Hibernate的验证停止工作,因为在本教程的最后描述:

http://www.captaindebug.com/2011/07/applying-custom-spring-validator-to.html#.VQR0OI7F-gd

当你需要自己做所有控制器的验证应该使用这种技术,你不能或者不想利用Hibernate的参考实现JSR 303的验证的。 从此,你猜,你不能混用Hibernate的JSR 303验证自己定制的春季验证 。 例如,添加内置注释地址命令对象将没有任何效果:

你应该忘记老式弹簧验证,并删除“setInitBinder()”作为此相关的问题描述:

Spring MVC的验证注释+自定义验证

然后,您应该只依靠休眠验证和JSR303。

要在复杂的验证添加到您的类(模型),说要检查两个日期字段 - 使用自定义的注释约束的一流水平,如下面的链接描述。

https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/validator-customconstraints.html#section-class-level-constraints

希望这可以帮助。

最好的问候,亚历山大



Answer 2:

一旦看这这可能帮助您同时使用JSR-303和传统Bean验证? 。 在那里,我已经给出了使用定制标注模型自定义验证一个例子。



文章来源: Spring - mixing annotation and validator-based validations