SpringMVC实现文件上传报错:rejected value [org.springframework.s.CommonsMultipartFile@*]

阅读: 评论:0

SpringMVC实现文件上传报错:rejected value [org.springframework.s.CommonsMultipartFile@*]

SpringMVC实现文件上传报错:rejected value [org.springframework.s.CommonsMultipartFile@*]

先看错误信息:

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。

实例

  1. 实体类
        @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> &nbsp;<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;}

补充

上传文件不成功还可能是如下情况:

  1. form表单未添加:enctype="multipart/form-data"
  2. 缺少相应的jar包。 ,
    3.spring MVC的配置文件中没有配置:
	<!-- 配置文件上传 --><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小时内删除。

标签:报错   文件上传   org   rejected   SpringMVC
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23