我正在使用Spring MVC 3.2.3 + Jackson 2.1.4进行JSON序列化。
我想知道是否可以要求Spring验证请求体*中的JSON对象,特别是如果缺少必填字段?
我尝试在Java bean的一个属性上设置 @JsonProperty(require = true),但在请求的JSON对象中缺少该字段时似乎没有异常。
请求正文中的JSON(缺少“field1”)
{
"field2": "value2",
"field3": "value3"
}
控制器代码:
@Controller
@RequestMapping("/myBaseUrl")
public class MyController{
//...
@RequestMapping(method = RequestMethod.POST, value = "/myUrl", consumes = MediaType.APPLICATION_JSON_VALUE)
public void handle(@RequestBody MyRequestBean requestBean) throws IOException {
// code reach at execution whereas I expected the throw of an exception because "field1" is missing in JSON.
}
}
请求的Bean:
public class MyRequestBean {
//...
@JsonProperty(required = true)
private String field1
//...
public String getField1(){ return field1; }
public void setField1(String field1){ this.field1 = field1; }
}