例如,这是一个Get请求:
我想定义一个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;
}
那么, jackson 中是否有类似
@JsonProperty
的东西将下划线样式转换为 Camel 样式? 最佳答案
您只有两个选择;
第一的。让您的SearchRequest pojo具有带注释的值以进行验证,但让 Controller 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.
}