我正在尝试验证通过jQuery发布的嵌套对象。
以下是我的目标:
public class One {
@Valid
@NotNull
Two two;
public Two getTwo() {
return two;
}
public void setTwo(Two two) {
this.two = two;
}
}
和
public class Two {
@NotNull
private String property;
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
这是我的控制器:
@RequestMapping(value="/", method=RequestMethod.POST)
@ResponseBody
public String test(@Valid One one) {
return "Success";
}
但是,我正在发布以下JSON对象:
{
"two": {
"property": "test"
}
}
我收到错误:Field error in object 'one' on field 'two': rejected value [null]; codes [NotNull.one.two,NotNull.two,NotNull.com.test.Two,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [one.two,two]; arguments []; default message [two]]; default message [may not be null]
我的JSON结构有问题还是我缺少什么?
修改 这是jQuery ajax调用:
$.ajax({
type: 'POST',
url: 'my-url-here',
data: JSON.stringify({"one":{"two":{"property": "test"}}}),
dataType: "json",
contentType: 'application/json'
}).done(function(data) {
console.log(data);
});
答案 0 :(得分:0)
将您的方法更改为:
@RequestMapping(value="/", method=RequestMethod.POST, consumes={"application/json"})
public String test(@RequestBody One one)