【发布时间】:2014-04-07 16:33:25
【问题描述】:
我有这个 REST 控制器,它也应该处理异常。
@ExceptionHandler(MultipartException.class) 注释不能用作explained。
所以我正在实现HandlerExceptionResolver,它基本上可以工作,但对于 REST 和 JSON 响应来说不如@ExceptionHandler 方便。
我想在resolveException 中返回我的自定义类ValidationReport,类似于@ExceptionHandler handleBadRequest。我无法使用 ValidationReport json 响应创建 ModelAndView。知道如何将两种样式结合起来吗?
@RestController
class ValidationController implements HandlerExceptionResolver{
static Logger LOG = LoggerFactory.getLogger(ValidationController.class);
@RequestMapping(value="/validate", method=[POST])
public ValidationReport validate(MultipartFile file) {
LOG.info("received file ${file?.name}")
ValidationReport report = new ValidationReport();
return report
}
@ResponseStatus(BAD_REQUEST)
@ExceptionHandler(MultipartException.class)
@ResponseBody ValidationReport handleBadRequest(HttpServletRequest req, Exception ex) {
return new ValidationReport(USER_ERROR, "you should not upload files bigger then xx MB")
}
@Override
ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (ex instanceof MultipartException){
response.sendError(BAD_REQUEST.value(),ex.message)
}
return null
}
}
我
【问题讨论】:
标签: java spring rest multipart multipartform-data