在Play(现在的2.6)项目中,使用基于注释的验证(例如,@Constraints.Required
)以及通过Validatable
(加@Validate
)进行验证。到目前为止,这种方法运行良好,但是从播放2.6开始,两者现在默认同时执行。
这导致了不幸的结果,validate
方法(来自Validatable
)现在不再能确定所有其他验证已经成功完成,因此我们必须添加各种空值检查validate
中的等等,对于每个注释已标记为非null的字段。
在Play 2.6中是否有办法获取行为,validate()
仅在所有基于注释的验证规则成功完成后调用?
答案 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。