先看错误信息:
Field error in object 'gene' on field 'geneFarmImg': rejected value [org.springframework.web.multipartmons.CommonsMultipartFile@477c7a2f]; codes [FarmImg,typeMismatch.java.lang.String,typeMismatch]; arguments [t.support.DefaultMessageSourceResolvable: codes [FarmImg,geneFarmImg]; arguments []; default message [geneFarmImg]]; default message [Failed to convert property value of type 'org.springframework.web.multipartmons.CommonsMultipartFile' to required type 'java.lang.String' for property 'geneFarmImg'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.springframework.web.multipartmons.CommonsMultipartFile' to required type 'java.lang.String' for property 'geneFarmImg': no matching editors or conversion strategy found]]
17:35:03.453 [http-nio-1210-exec-7] DEBUG o.CommonsMultipartResolver - Cleaning up part 'atlas', filename ''
17:35:03.453 [http-nio-1210-exec-7] DEBUG o.CommonsMultipartResolver - Cleaning up part 'callus', filename ''
17:35:03.453 [http-nio-1210-exec-7] DEBUG o.CommonsMultipartResolver - Cleaning up part 'emergence', filename ''
17:35:03.453 [http-nio-1210-exec-7] DEBUG o.CommonsMultipartResolver - Cleaning up part 'geneFarmImg', filename ''
17:35:03.453 [http-nio-1210-exec-7] DEBUG o.s.web.servlet.DispatcherServlet - Completed 400 BAD_REQUEST
主要报错点:
rejected value [org.springframework.web.multipartmons.CommonsMultipartFile@3105ca2a]
先要了解Spring注入的是接口,关联的是实体类。这里 file 用的是实体类的变量名,所以就注入了实体类。而实体类体中该属性是String类型,自然报错。就是Spring把这个与实体类属性同名的参数注入了这个实体,而这个实体属性的类型是String,自然与CommonsMultipartFile类型无法匹配。
form 表单中的type为file的标签name另取,后台获取这个另取的name。
@NoArgsConstructor@AllArgsConstructor@Setter@Getter@ToStringpublic class Gene implements Serializable {private String geneId;private String geneName;private String geneFarmImg;}
2.form表单
<form id="ff" method="post" enctype="multipart/form-data"><div class="m-b"><label>基因编号:</label><input type="text" name="geneId" placeholder="" class="bg-white text"></div><div><label>基因名称:</label><input type="text" name="geneName" placeholder="" class="bg-white text"></div><div><label>田间检测图:</label><input name="farm" class="easyui-filebox" multiple="true" style="width: 100%; height:40px;"></div><div class="foot_btn"><a href="#" class="easyui-linkbutton" style="height: 40px;width: 80px;"data-options="iconCls:'icon-ok',toggle:false" onclick="submitBtn()">提交</a> <a href="#" class="easyui-linkbutton" style="height: 40px;width: 80px;"data-options="iconCls:'icon-cancel',toggle:false" onclick="cancelBtn()">取消</a></div></form>
3.后台Controller
@RequestMapping("/add")@ResponseBodypublic Map<String,Object> addGene(Gene gene,@RequestParam( value = "farm",required = false) CommonsMultipartFile[] farm,HttpServletRequest request ){try{FileUpload upload = new FileUpload();gene.setGeneFarmImg(upload.uploadFile(farm,request));geneService.saveGene(gene);map.put("msg","ok");} catch (Exception e){e.printStackTrace();map.put("msg","error");}return map;}
上传文件不成功还可能是如下情况:
enctype="multipart/form-data"
<!-- 配置文件上传 --><bean id="multipartResolver" class="org.springframework.web.multipartmons.CommonsMultipartResolver"><property name="maxUploadSize"><value>-1</value> <!-- -1表示大小无限制 --></property><property name="defaultEncoding"><value>UTF-8</value></property></bean>
参考文章:Spring SpringMVC 文件上传错误
本文发布于:2024-02-01 15:42:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170677336037668.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |