@ExceptionHandler(MethodArgumentNotValidException.class)
public ModelAndView validationException(final MethodArgumentNotValidException e)
{
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw);
final String strStackTrace = sw.toString();
e.printStackTrace(pw);
logger.error(strStackTrace); // send to logger first
emailService.sendAlertMail(strStackTrace);
BindingResult bindingResult = e.getBindingResult();
List<ObjectError> errors = bindingResult.getAllErrors();
ModelAndView mav = new ModelAndView("exception");
mav.addObject("errors", errors);
/*ObjectError error = errors.get(0);
error.getDefaultMessage()*/
return mav;
}
以上是我在Abstract类中定义的方法,该方法由我的所有控制器继承。验证实际上是有效的,它只是我如何处理它。
此异常处理程序由ajax提交的json控制器调用。 ajax调用本身会打开一个新对话框,该对话框将填充正确的数据和视图,或者带有错误消息的异常视图 - 除非它不是......?
我尝试更改ajax调用,并添加了一个on错误处理程序,但这也不起作用,当验证失败时仍然得到404(如果验证成功则工作正常)。