我有一个SpringMVC Web服务,用于上传文件,它的代码类似这样:
@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload(MultipartHttpServletRequest request) {
// upload the file
}
一切都很好。但是,如果其中一个使用者发布了非多部分表单,则会出现此异常。
java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]
这是有道理的.. 但我不希望我的终端用户看到500个servlet异常。我想要一个友好的错误信息。
我刚试了一下这个(作为其他POST的catchall):
@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload2(){
// return friendly msg
}
但是我遇到了这个错误:
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/upload.json'
有没有一种安全的方式可以在一个方法中处理多部分和非多部分POST请求,或者使用2种不同的方法都可以。