簡體   English   中英

Dropwizard bean驗證不起作用

[英]Dropwizard bean validation not working

我已經寫了drop-wizard Get API請求,它有GET API請求和參數列表。所以我需要驗證那些參數,所以問題是我已經使用了

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

獲取參數。 因此,在獲取參數后,我在對象bean中為強制參數添加了@NotNull。現在當我向這些強制參數發送空值時,它可以正常工作。當名稱為空值時,我想拋出錯誤或某些東西。我想知道什么是我方法中的問題。

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;
    }
}

使用Dropwizard附帶的JSR-303 Hibernate驗證框架,您有兩種選擇:

  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 */ } 

在這里查看更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM