2012-02-16 132 views
0

我想使用泽西从用户那里获取JSON请求创建供应商javax.validation正从球衣

@POST 
@Produces({APPLICATION_JSON}) 
@Consumes({APPLICATION_JSON}) 
@Path("create") 
public Response create(VendorTO vendorTO) throws Exception { 

忽略但在vendorTO对象转换之前,我想javax.validation

对其进行验证

我在POJO添加的约束这样

{@JsonSerialize(include=Inclusion.NON_NULL) 
    public class VendorTO { 
@NotNull 
private Integer userId; 
@Size(min = 2) 
private String vendorName; 
private String address1; 
private String address2; 
private String city; 
private String state; 
private String country; 
private String email; 
private String phone; 

}

但它似乎并没有工作。谁能帮忙?

回答

0

你需要告诉框架的参数应该是@Valid ated:

@POST 
@Produces({APPLICATION_JSON}) 
@Consumes({APPLICATION_JSON}) 
@Path("create") 
public Response create(@Valid VendorTO vendorTO) { 
    // ... 
} 
+0

感谢您的帮助,但它仍然无法正常工作:(现在我有一个疑问,泽西岛支持javax.validation? – rachana 2012-02-16 19:04:06

+0

嗯,你_can_总是只运行验证自己,虽然它肯定不是简洁 – 2012-02-16 21:20:09

+0

不幸的是,直到[JAX-RS 2.0](http://jersey.576304.n2.nabble.com/Parameter-validation-jsr-303-again-td6861412.html),它看起来并不像'魔术'那样工作。 – 2012-12-12 19:41:00

0

在这一点上,似乎新泽西州不支持JSR 303 natively。您可能必须编写一些ResourceFilters并手动处理验证。