spring mvc post表单提交 获取不到页面上的值,get可以
2017-07-17 21:15
387 查看
<form id="itemForm" action="${pageContext.request.contextPath }/items/editItemsSubmit.action" method="post" enctype="multipart/form-data"> <input type="hidden" name="id" value="${itemsCustom.id }"/> 修改商品信息: <table width="100%" border=1> <tr> <td>商品名称</td> <td><input type="text" name="name" value="${itemsCustom.name }"/></td> </tr> <tr> <td>商品价格</td> <td><input type="text" name="price" value="${itemsCustom.price }"/></td> </tr> <%-- <tr> <td>商品生产日期</td> <td><input type="text" name="createtime" value="<fmt:formatDate value="${items.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td> </tr> --%> <tr> <td>商品图片</td> <td> <c:if test="${items.pic !=null}"> <img src="/pic/${items.pic}" width=100 height=100/> <br/> </c:if> <input type="file" name="items_pic"/> </td> </tr> <tr> <td>商品简介</td> <td> <textarea rows="3" cols="30" name="detail">${itemsCustom.detail }</textarea> </td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交"/> </td> </tr> </table> </form>
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传输的文本数据了。
参见:http://www.open-open.com/lib/view/open1449042716139.html
相关文章推荐
- 在phpstorm中利用post方法提交form表单后,在响应页面获取不到数据的解决办法
- ajax使用post提交参数java后台获取值为null但是get却可以获取的问题
- Spring MVC 3 表单中文提交post请求和get请求乱码问题的解决方法
- form表单提交,后台获取不到参数值问题(前题是页面参数正常没有错误)
- springmvc中前台页面form表单提交方法为post,但是报HTTP Status 405 - Request method 'GET' not supported
- 【Java】向一个页面发送post请求并获取其处理之后的结果与用javascript创建一个表单后提交的安全性
- form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据
- html中表单使用post方式提交,为什么没有值? get方式可以得到控件的值
- form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据
- 表单中多个请求参数名字相同,服务器到底获取的是哪个请求参数的值,表单的action和get和post提交方式的关系以及提交数据的不同点
- multipart/form-data post 方法提交表单,后台获取不到数据
- 前台post提交表单时获取不到数据的原因
- Android OkHttp3(完美封装)Get异步获取数据、Post异步获取数据、Form表单提交、文件下载
- spring MVC form表单提交用RequestMethod.POST报错 : Request method 'GET' not supported
- 如何获取表单提交值 post(地址栏不带参数)或get(地址栏带参数)
- Android 使用三种方式获取网页(通过Post,Get进行表单的提交)
- php表单提交时获取不到post数据的解决方法
- Android 使用三种方式获取网页(通过Post,Get进行表单的提交)
- jQuery登录界面,不用跳转页面即可提交post,可以从服务器端获取返回数据
- multipart/form-data post 方法提交表单,后台获取不到数据