Dropwizard bean 验证不起作用

Dropwizard bean validation not working

我已经写了 drop-wizard Get API 请求,它有 GET API 请求和参数 list.So 我需要验证那些辅助人员 所以问题是我使用了

     @Context UriInfo uriInfo 
        MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters();
    String name = parameters.getFirst("name");
Sample sam = new Sample();
sam.setName(name);

获取参数。因此,在获取参数后,我在 Object bean.Now 中为强制参数添加了 @NotNull 当我向那些强制参数发送空值时它正在工作 fine.I 想要抛出错误或名称为 null value.I想知道我的方法有什么问题。

public class Sample {
    @NotNull
    private String name;
    @NotNull
    private String StudentId;

    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

您有两个选择,使用 JSR-303 Hibernate 验证框架,与 Dropwizard 一起打包:

  1. 显式验证,结果存储在validate变量中,没有抛出异常:

    ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
    Validator validator = vf.getValidator();
    
    Set<ConstraintViolation<FormDataContentDisposition>> validate =
        validator.validate(samp);
    
  2. 在 REST 注释方法调用之前验证,当你的 bean 是一个用 @Valid 注释的输入参数时,将抛出 ConstraintViolationException

    @POST
    @Path("/doPost")
    public void addSample(@Valid Sample sample)
    {
        /* Do something */
    }
    

查看更多详情here