Spring mvc 如何在控制器上处理MaxUploadSizeExceedeException

Spring mvc 如何在控制器上处理MaxUploadSizeExceedeException,spring-mvc,Spring Mvc,当文件上载大小超过时面临以下异常。我想在上载文件大小超过时显示用户友好的异常。但它不会点击控制器来处理异常 例外情况: HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 20 bytes exceeded; nested exception

当文件上载大小超过时面临以下异常。我想在上载文件大小超过时显示用户友好的异常。但它不会点击控制器来处理异常

例外情况:

 HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 20 bytes exceeded; nested exception is org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (2536) exceeds the configured maximum (20).

如果exception stacktrace显示请求正在命中dispatcherservlet,从而命中控制器,那么您的@ExceptionHandler方法设置不正确


否则,如果stacktrace显示在此之前引发了异常,则。。。这是什么?

您已经设置了异常处理程序,并且它们正在其他地方工作?错误的原因是什么then@NimChimpsky,请参阅上面编辑的文章。在resolveException方法中,您作为modelAndView传递的是什么?看起来您的HandlerExceptionResolver没有被调用-resolveException中的字符串消息没有反映在stacktrace中的任何位置。@Prasad,最终得到它,它转到ExceptionHandler类,但另一个问题是,当我上传超过文件限制大小4MB的文件时,我不想上传它,我想向客户端显示错误消息,但作为默认行为,它试图上传的文件可能在缓存中,我现在注意到这一点,可能需要花费很多时间回到索引页面并向用户显示错误消息。一旦完成,我将发布完整的示例。请建议。如上所述,其未命中控制器,堆栈跟踪为HTTP状态500-请求处理失败;嵌套异常为org.springframework.web.multipart.maxUploadSizeExceedeException:超出最大上载大小20字节;嵌套异常为org.apache.commons.fileupload.FileUploadBase$SizeLimitExceedeException:请求被拒绝,因为其大小2536超过了配置的最大值20。请参阅上面编辑的帖子。发布错误的堆栈跟踪,对我来说,它似乎正在命中控制器,apache commons正在抛出错误,而您没有捕捉到,因此返回一个500pls。请参阅上面的帖子,获取堆栈跟踪,并且它没有命中控制器,我将调试点保留在控制器上,并检查它是否命中。在命中方法体之前,它会被sprign绑定到一个多部分解析器,但它仍然会抛出一个控制器异常,stacktrace需要Soemthing liek