我正在一个J2EE Web应用程序上使用Spring MVC。
我已经创建了一个方法,将请求体绑定到与上述模型相似的模型。
@RequestMapping(value = "/", method = RequestMethod.POST, produces = "application/json")
public AModel createEntity(@Valid @ModelAttribute MyInsertForm myInsertForm) {
// coding..
}
一切都很好,当我在MyEntityForm中包含一个MultipartFile类型的属性时,我必须使用内容类型“multipart/form-data”进行请求。这种情况下一切也都很好。
我面临的问题是,我想将MultipartFile属性设置为可选。当客户端请求包含文件时,我的方法可以正常工作,但是当客户端请求不包含文件时,Spring会抛出HTTP状态500错误,错误信息为“Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly”。
有没有办法解决此问题而不创建两个控制器方法(一个带有MultipartFile,另一个没有)?