gpt4 book ai didi

java - 玩框架@Required

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:23 24 4
gpt4 key购买 nike

我是 Java 新手,正在玩。通过示例应用程序。你能帮我理解这个文件中发生了什么吗? https://github.com/playframework/Play20/blob/master/samples/java/forms/app/models/User.java

我不明白为什么我们将这个接口(interface)声明为“public interface All {}”以及它是如何在这个验证中使用的。 “@Required(groups = {All.class, Step1.class})”

最佳答案

@Required 是自定义 JSR-303注释,在 Play 框架内创建。 JSR-303 是用于验证 Javabean 的规范,它允许确保给定 Java bean 的值落在一组约束内。一些标准验证注释的示例:

  • @Max - 注释元素必须是一个数字,其值必须小于或等于指定的最大值。
  • @Min - 注释元素必须是一个数字,其值必须大于或等于指定的最小值。
  • @NotNull - 注释元素不能为空。

每个 JSR-303 注释都允许定义,其中每个组实际上只是一个类。这些组可用于执行给定 bean 的验证子集。在您的特定示例中,实现者定义了两个接口(interface)来表示这些组 - AllStep1。然后他们将这些组添加到验证注释中,以指示这些验证属于该组。所以对于下面的类:

public class MyBean {
@Required(groups = {All.class, Step1.class})
@MinLength(value = 4, groups = {All.class})
public String username;
}

MyBean bean = new MyBean();
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();

以下将对 username 字段执行 @Required@MinLength 验证:

validator.validate(bean, All.class);

而以下将仅执行 @Required 验证(对于 username 字段):

validator.validate(bean, Step1.class);

关于java - 玩框架@Required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237176/

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