例如,这是一个Get请求:
获取:/ search?product_category = 1& user_name = obama
我想定义一个SearchRequest
来接受查询字符串,所以我可以使用JSR 303 bean验证注释来验证参数,如下所示:
public class SearchRequest {
@NotEmpty(message="product category is empty")
private int productCategory;
@NotEmpty(message="user name is empty")
private int userName;
}
那么,杰克逊是否有类似@JsonProperty
的东西将下划线样式转换为驼色风格?
答案 0 :(得分:1)
您只有两个选项;
首先。让你的SearchRequest pojo带有注释值进行验证,但是有一个控制器POST方法接收pojo作为请求体作为JSON / XML格式。
public class SearchRequest {
@NotEmpty(message="product category is empty")
private int productCategory;
@NotEmpty(message="user name is empty")
private int userName;
}
public String search(@RequestBody @Valid SearchRequest search) {
...
}
二。在Controller方法签名中进行验证,消除pojo中的验证,但如果需要,仍然可以使用pojo。
public class SearchRequest {
private int productCategory;
private int userName;
}
public String search(@RequestParam("product_category") @NotEmpty(message="product category is empty") String productCategory, @RequestParam("user_name") @NotEmpty(message="user name is empty") String username) {
... // Code to set the productCategory and username to SearchRequest pojo.
}
答案 1 :(得分:0)
public class SearchRequest {
private int productCategory;
private String userName;
@NotNull(message="product category is empty")
public int getProduct_category() {
return getProduct_category();
}
@NotEmpty(message="user name is empty")
public String getUser_name() {
return userName;
}
public void setProduct_category(int product_category) {
productCategory = product_category;
}
public void setUser_name(String user_name) {
userName = user_name;
}
}
顺便说一句,我假设userName
最好是一个字符串,对于一个整数属性,你实际上想要@NotNull
......