我写了drop-wizard Get API请求,它有GET API请求和参数列表。所以我需要验证那些pareamaters所以问题是我有用
@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;
}
}
答案 0 :(得分:2)
你有两个选择,使用JSR-303 Hibernate验证框架,用Dropwizard打包:
显式验证,结果存储在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 */
}
查看更多详情here。