[英]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驗證框架,您有兩種選擇:
顯式驗證,結果存儲在validate
變量中,不會引發異常:
ValidatorFactory vf = Validation.buildDefaultValidatorFactory(); Validator validator = vf.getValidator(); Set<ConstraintViolation<FormDataContentDisposition>> validate = validator.validate(samp);
在REST注釋的方法調用之前進行驗證,如果您的bean是使用@Valid
注釋的輸入參數,則會拋出ConstraintViolationException
:
@POST @Path("/doPost") public void addSample(@Valid Sample sample) { /* Do something */ }
在這里查看更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.