我正在使用 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; }
}