gpt4 book ai didi

java - JSR-303 和 Validatable 验证的顺序

转载 作者:行者123 更新时间:2023-12-02 11:27:24 29 4
gpt4 key购买 nike

在 Play(现在为 2.6)项目中,基于注释的验证(例如,@Constraints.Required)以及通过 Validatable 进行的验证(加上 @Validate)被使用。到目前为止,这工作得很好,但从 2.6 版本开始,两者现在默认同时执行。

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

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

最佳答案

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

Be aware: The “old” validate method was invoked only after all other constraints were successful before. By default class-level constraints however are called simultaneously with any other constraint annotations - no matter if they passed or failed. To (also) define an order between the constraints you can now use constraint groups.

看起来是这样的:

import javax.validation.GroupSequence;
import javax.validation.groups.Default;

@GroupSequence({ Default.class, SignUpCheck.class, LoginCheck.class })
public interface OrderedChecks { }

参见https://www.playframework.com/documentation/2.6.x/JavaForms#advanced-validation了解详情。

关于java - JSR-303 和 Validatable 验证的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511909/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com