如何解决在Spring MVC中处理多部分和非多部分HTTP POST
|| 我有一个用于上传文件的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的包包一样):
@RequestMapping(value=\"/upload.json\",Object> upload2(){
// return friendly msg
}
但是我得到这个错误:
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path \'/upload.json\'
有什么方法可以安全地处理多部分和非多部分POST请求?在一种方法或2种不同的方法中,我不在乎。
解决方法
检查您自己的请求是否包含多个部分:
@RequestMapping(value=\"/upload.json\",method = RequestMethod.POST)
public @ResponseBody Map<String,Object> upload(HttpServletRequest request) {
if (request instanceof MultipartHttpServletRequest) {
// process the uploaded file
}
else {
// other logic
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。