错误消息将会是:The request sent by the client was syntactically incorrect ().
错误的方法定义 1 :(错误原因:没有 BindingResult 参数)
@RequestMapping ({ "error400" }) public String error400( @Valid @ModelAttribute ( "testForm" ) TestForm testForm) { return "test" ; } |
错误的方法定义 2 :(错误原因:没有紧跟在 @Valid 参数之后)
@RequestMapping ({ "error400" }) public String error400( @Valid @ModelAttribute ( "testForm" ) TestForm testForm, Model model, Errors result) { return "demo/front/test" ; } |
也可参考 DefaultHandlerExceptionResolver.java 中的方法说明:
/** * Handle the case where an {@linkplain ModelAttribute @ModelAttribute} method * argument has binding or validation errors and is not followed by another * method argument of type {@link BindingResult}. * By default an HTTP 400 error is sent back to the client. * @param request current HTTP request * @param response current HTTP response * @param handler the executed handler * @return an empty ModelAndView indicating the exception was handled * @throws IOException potentially thrown from response.sendError() */ protected ModelAndView handleBindException(BindException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { response.sendError(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView(); } |