在项目中我们接收 CommonsMultipartFile对象时,有时会报这种异常:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.multipart.commons.CommonsMultipartFile]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.web.multipart.commons.CommonsMultipartFile.<init>()
...
Caused by: java.lang.NoSuchMethodException: org.springframework.web.multipart.commons.CommonsMultipartFile.<init>()
这是因为在接收 CommonsMultipartFile 对象时,需要在对象前加 @RequestParam 注解 。
例:public void getFile(@RequestParam CommonsMultipartFile file){}
有时也会遇到这个异常:
Required CommonsMultipartFile parameter 'pic' is not present
这是因为添加@RequestParam 注解 后,接收到空的 CommonsMultipartFile 对象 , 所以 CommonsMultipartFile 允许为 null,添加required=false 即可。
例:public void getFile(@RequestParam(required=false) CommonsMultipartFile file){}