我对Spring MVC中的数据绑定有疑问。Spring MVC中的数据绑定错误处理
我有一个Controller,它以@RequestBody的形式接受一个JSON请求。我拥有所有的JSR 303验证,并且它像一个魅力。一旦进入JSON数据被绑定到请求对象
JSON请求
public class TestJSONRequest { @Size(min=10,message="{invalid.demo.size}") String demo; int code; }
控制器
@Controller @RequestMapping("/test") public class TestController { public void testEntry(@RequestBody TestJSONRequest jsonRequest,ModelMap map) Set<ConstraintViolation<TestJSONRequest>> violationList = validator.val(jsonRequest); .... .... TestJSONResponse response = // Do complex Logic. modelMap.addattribute("TestJSONResponse",response); } }
但是JSR 303的验证之后英寸
如果我发送ab
在代码字段的输入JSON请求,绑定本身会失败。
我该如何处理?
我想捕捉这些数据绑定错误,并在我的控制器中进行一些通用的错误处理。
你能帮我解决吗?
PS - 我使用Spring 3.0.3
感谢您的信息。我正在使用Spring 3.0.3 .. MethodArgumentNotValidException仅在v3.1中可用我想..我将无法更改弹簧版本,因为在mvc开发之上有一个框架不在我的控制之中。另外,在我的控制器中,我不会给出视图名称。我只是在模型地图中设置属性,前端模板读取地图以获取必要的信息。用@ExceptionHandler注解的返回类型的方法应该总是一个String? – user1166031 2012-07-31 00:17:06
它可以是一个String或者ModelAndView,或者你可以像返回一个Map一样使用'@RequestMapping(produce =“application/json”)''和'@ ResponseBody'将它转换为JSON。 。 – Muel 2012-07-31 00:23:23
哦,好的...但我不喜欢Spring 3.1。所以,我不能使用MethodArgumentNotValidException。有什么我可以做的,以捕捉有约束力的问题? – user1166031 2012-07-31 00:25:16