正在进行JSR-303和Validatable验证的顺序

时间:2018-03-27 11:38:52

标签: java playframework playframework-2.0 bean-validation

在Play(现在的2.6)项目中,使用基于注释的验证(例如,@Constraints.Required)以及通过Validatable(加@Validate)进行验证。到目前为止,这种方法运行良好,但是从播放2.6开始,两者现在默认同时执行。

这导致了不幸的结果,validate方法(来自Validatable)现在不再能确定所有其他验证已经成功完成,因此我们必须添加各种空值检查validate中的等等,对于每个注释已标记为非null的字段。

在Play 2.6中是否有办法获取行为,validate()仅在所有基于注释的验证规则成功完成后调用?

1 个答案:

答案 0 :(得分:1)

来自https://www.playframework.com/documentation/2.6.x/Migration26#form-changes

  

请注意:只有在之前所有其他约束成功之后才会调用“旧”验证方法。默认情况下,类级别约束与任何其他约束注释同时调用 - 无论它们是通过还是失败。要(也)定义约束之间的顺序,现在可以使用约束组。

这是看起来的样子:

CommitEdit

有关详细信息,请参阅https://www.playframework.com/documentation/2.6.x/JavaForms#advanced-validation