springmvc踩坑记
来源:互联网 发布:宇宙射线知乎 编辑:程序博客网 时间:2024/06/05 08:38
今天尝试用springmvc上传图片。因为上传图片不像表单上传只需要几个key,value,所以form标签的enctype属性值为multipart/form-data,一个图片上传字段,还有其他一下字段,
代码如下:
<form method="post" action="${pageContext.request.contextPath}/item/addItem.do" enctype="multipart/form-data" > 商品名称:<input name="name" value="${item.name}" /><br> 商品价格:<input name="price" value="${item.price}" /><br> 商品描述:<input name="description" value="${item.description}" /><br> 创建日期:<input name="createtime" value="${item.createtime}" /><br> 商品图片:<input type="file" name="uploadImg"/> <input type="submit" value="go" /></form>
在后台java控制器中接收参数
@RequestMapping("/addItem.do")public String addItem(@ModelAttribute(value = "item") customItem citem, MultipartFile uploadImg){ //server.addItem( citem ); return "addItemPage";}
当然,为了能让springmvc框架处理表单上传的数据,需要在springmvc的控制文件中加入如下配置,这里我说的处理是当表单的enctype=‘multipart/form-data’ 的时候需要下面这个类来处理一下数据,但是以下的配置方式是错误的。
<bean id="multipart" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" > <property name="maxUploadSize" value="5242880" ></property></bean>
我把id取名为multipart时,springmvc 获取不到这个bean, 可以看一下源码
private void initMultipartResolver(ApplicationContext context) { try { this.multipartResolver = (MultipartResolver)context.getBean("multipartResolver", MultipartResolver.class); if(this.logger.isDebugEnabled()) { this.logger.debug("Using MultipartResolver [" + this.multipartResolver + "]"); } } catch (NoSuchBeanDefinitionException var3) { this.multipartResolver = null; if(this.logger.isDebugEnabled()) { this.logger.debug("Unable to locate MultipartResolver with name \'multipartResolver\': no multipart request handling provided"); } }}
这段代码在DispatcherServlet类中。
它通过multipartResolver 来获取bean,所以在写bean的id的时候不能必须为multipartResolver,不能自定义(当然不是绝对的)任意的id;
真确的配置如下
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" > <property name="maxUploadSize" value="5242880" ></property></bean>
阅读全文
0 0
- springmvc踩坑记
- SpringMVC HandlerExceptionResolver踩坑记
- SpringMVC
- springmvc
- SpringMVC
- SpringMVC
- springMvc
- springMVC
- springmvc
- springMVC
- springMVC
- springmvc
- SpringMVC
- SpringMVC
- springMvc
- springmvc
- springmvc
- SpringMVC
- python聚类
- Spring boot如何写一个自定义的auto-configuration(上)
- 存储过程简介
- java通过sms发送短信
- 中文乱码问题
- springmvc踩坑记
- Qt 的线程与事件循环
- Java中CAS详解
- 文章标题
- Redis作者谈Redis应用场景
- 汉诺塔递归算法
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- PHP 常用数组
- Unity官网>Learn>Toturial>Topic笔记