SpringMVC接收不到网页POST方式的参数

编写的SpringMVC服务器端来获取通过html表单提交的参数时候时候,如果是GET方式服务端能够接收到参数的值,如果是POST方式,则接收不到参数的值,代码如下

jsp:

  1. <form id="itemForm" action="${pageContext.request.contextPath }/items/editItemsSubmit.action" method="post" enctype="multipart/form-data">  
  2. <input type="hidden" name="id" value="${itemsCustom.id }"/>  
  3. 修改商品信息:  
  4. <table width="100%" border=1>  
  5. <tr>  
  6.     <td>商品名称</td>  
  7.     <td><input type="text" name="name" value="${itemsCustom.name }"/></td>  
  8. </tr>  
  9. <tr>  
  10.     <td>商品价格</td>  
  11.     <td><input type="text" name="price" value="${itemsCustom.price }"/></td>  
  12. </tr>  
  13. <%-- <tr>  
  14.     <td>商品生产日期</td>  
  15.     <td><input type="text" name="createtime" value="<fmt:formatDate value="${items.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td>  
  16. </tr>  
  17.  --%>  
  18. <tr>  
  19.     <td>商品图片</td>  
  20.     <td>  
  21.         <c:if test="${items.pic !=null}">  
  22.             <img src="/pic/${items.pic}" width=100 height=100/>  
  23.             <br/>  
  24.         </c:if>  
  25.         <input type="file"  name="items_pic"/>   
  26.     </td>  
  27. </tr>  
  28. <tr>  
  29.     <td>商品简介</td>  
  30.     <td>  
  31.     <textarea rows="3" cols="30" name="detail">${itemsCustom.detail }</textarea>  
  32.     </td>  
  33. </tr>  
  34. <tr>  
  35. <td colspan="2" align="center"><input type="submit" value="提交"/>  
  36. </td>  
  37. </tr>  
  38. </table>  
  39.   
  40. </form>  

SpringMVC:

  1. @RequestMapping("/items/editItemsSubmit")  
  2.     public String editItesmSubmit(HttpServletRequest request,Integer id,ItemsCustom itemsCustom) throws Exception  

最后发现,这是form表单的enctype编码方式不同导致的

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。如果使用GET,则强制使用application/x-www-form-urlencoded"方式。我代码里强制使用了multipart/form-data方式,所以SpringMVC中获取不到POST形式的参数


spring mvc如果要接收 multipart/form-data 传输的数据,应该在spring上下文配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">       
</bean>

并将commons-fileupload-1.2.1.jar和commons-io-2.5.jar包引入到项目中

这样服务端就既可以接收multipart/form-data 传输的数据,也可以接收application/x-www-form-urlencoded传输的文本数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值