页面使用form提交数据,controller中使用对象接收参数,有时会发生400错误,错误信息返回到页面了,错误信息为Validation failed for object=‘xxx’。这时,后台不会打印错误的详情,controller方法也不会进入。有文章针对这个情况提出一个纠错方法就是加入BindingResult的自动注入参数,然后就能进入方法了,并且打印错误详情。例如:
@RequestMapping(value = "/update")
@ResponseBody
public voidupdate(Order order,BindingResult result) {
if(result.hasErrors()){
List<ObjectError> ls = result.getAllErrors();
for (int i = 0; i < ls.size(); i++) {
System.out.println("error:"+ls.get(i));
}
}
//do something
}
但我使用这种方法并不能进入controller方法中,经查,我的接收参数的对象中有Date字段,于是给该字段加上了@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 注解,之后便没有了该异常。
页面用form提交数据,controller用对象接收参数时,有时会出现400错误,错误信息返回到页面,后台不打印详情且无法进入controller方法。有文章提出加入BindingResult自动注入参数来纠错,但作者使用该方法无效。经检查,接收参数对象中有Date字段,添加注解后异常消除。
2401

被折叠的 条评论
为什么被折叠?



