标签:puts input 对象 nbsp 通过 需要 int gre pos
1、现在前端发送了一个POST请求,他的Data是一个数组,而不是对象(jsonObj的值两侧是中括号)。
var jsonObj = [{‘id‘:11, ‘name‘:‘叵‘}, {‘id‘:12, ‘name‘:‘卜‘}]; $.ajax({ type : "post", // 省略 data : JSON.stringify(jsonObj), // 省略 });
2、后端的请求方法应该让一个Input的数组对象,或是Input泛型的List对象入参,来进行数据绑定
@RequestMapping @ResponseBody public Integer diningId(@RequestBody PersonInput[] inputs) { // 省略 return 0; }
@RequestMapping @ResponseBody public Integer diningId(@RequestBody List<PersonInput> inputs) { // 省略 return 0; }
就参数绑定而言,两者都是可行的,参数成功绑定了。
3、现在需要做参数校验,比如id不能为空白,
很容易想到在PersonInput.id域的上方追加@NotBlank主键,
在请求方法中追加一个BindingResult对象作为入参。
@RequestMapping @ResponseBody public Integer diningId(@RequestBody List<PersonInput> inputs, BindingResult checker) { // 省略 return 0; }
class PersonInput { @NotBlank private String id; private String name; // 省略 }
4、这样做的话,参数绑定依然能够成功,但是参数校验会失败,checker会是null
5、需要追加定义一个新的Pojo,只持有List<PersonInput>对象,并在通过@Valid递归校验。
class PersonInputList { @Valid private List<PersonInput> inputs; // 省略 }
标签:puts input 对象 nbsp 通过 需要 int gre pos
原文地址:http://www.cnblogs.com/deolin/p/7416398.html