更改spring MissingServletRequestPartException消息

时间:2016-05-01 01:52:12

标签: java spring-mvc spring-boot

我正在使用spring-boot-starter-web,我想更改上传请求映射返回的消息:

@RequestMapping("/upload")
public @ResponseBody String upload(@RequestParam("file") MultipartFile file){...}

我没有找到HTTP / 1.1 404找不到的是:

{"timestamp":1462064481371,"status":404,"error":"Not Found",
"exception":"org.springframework.web.multipart.support.MissingServletRequestPartException",
"message":"Required request part 'file' is not present","path":"/upload"}

我想更改“必需的请求部分'文件'不存在”,例如“缺少参数

是否有一种简单的方法可以通过注释完成此操作?

如果可能的话,我也想抑制异常信息。

谢谢。

2 个答案:

答案 0 :(得分:0)

好的,到目前为止最好的解决方案是重写整个ResponseBody:

    @ExceptionHandler(MissingServletRequestPartException.class)
    public @ResponseBody Map<String,String> handleMissingServletRequestPartException(Exception  exception, HttpServletResponse response) {
        Map<String,String> errorMap = new HashMap<String,String>();
        errorMap.put("message","missing parameter");
        response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
        return errorMap;
    }

...

{&#34; message&#34;:&#34;缺少参数&#34;}

答案 1 :(得分:0)

此异常由ResponseEntityExceptionHandler处理。 您可以对此进行扩展并覆盖方法handleMissingServletRequestPart。这可能是这样的例子:

module.exports.component = TodoComponent