网站vi设计公司,网站建设app,最近的新闻热点事件,中山网站开发公司2019独角兽企业重金招聘Python工程师标准 在一个带enctypemultipart/form-data属性的表单提交时发现#xff0c;该表单中包含的其他input无法设置到对应方法参数中。 如下#xff1a; JSP#xff1a;带enctypemultipart/form-data属性… 2019独角兽企业重金招聘Python工程师标准 在一个带enctypemultipart/form-data属性的表单提交时发现该表单中包含的其他input无法设置到对应方法参数中。 如下 JSP带enctypemultipart/form-data属性的表单包含一个username的input form action${ctx}/console/article/testUploadenctypemultipart/form-data methodpostinput typetext nameusername/input typefile nameuploadFile/input typesubmit/
/formController非常普通的两个方法GET进入页面POST输出表单中username的值注意没有处理uploadFile。 RequestMapping(value /testUpload, produces text/html;charsetutf-8, method RequestMethod.GET)
public String testUpload() throws Exception {return /uploadFile;
}RequestMapping(value /testUpload, produces text/html;charsetutf-8, method RequestMethod.POST)
public String testUpload(String username) throws Exception {System.out.println(username);return redirect:testUpload;
}发现如下以下各点相互独立互不影响 1、填写username并选择文件后点击提交username输出为null 2、去掉表单的enctype属性填写username并选择文件后点击提交username输出正常 3、向POST的方法添加MultipartFile uploadFile参数修改结果如下填写username并选择文件后点击提交报错。 RequestMapping(value /testUpload, produces text/html;charsetutf-8, method RequestMethod.POST)
public String testUpload(String username, MultipartFile uploadFile) throws Exception {System.out.println(username);return redirect:testUpload;
}报错信息如下 根据以上发现可知 1、带enctype属性的表单需要额外配置以解析其中的参数 2、如果方法中的参数不处理文件即没有MultipartFile参数则不报错也无法获取其他参数。 网上见最后的链接找到解决办法得知需要配置multipartResolver来解析带enctypemultipart/form-data属性的表单 bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolverproperty namedefaultEncoding valueutf-8/propertyproperty namemaxUploadSize value10485760000/propertyproperty namemaxInMemorySize value40960/property
/bean附 https://segmentfault.com/q/1010000002786408 转载于:https://my.oschina.net/aslanjia/blog/861986