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 一起打包:
显式验证,结果存储在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。
我已经写了 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 一起打包:
显式验证,结果存储在
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。