hiddenHttpMethodFilter与enctype="multipart/form-data"冲突
来源:互联网 发布:virtualbox mac 10.11 编辑:程序博客网 时间:2024/06/05 03:25
最近在做一个网站后台,但涉及到编辑功能的实现时候,由于涉及到了文件上传功能的实现,必须在form表单中引入enctype="multipart/form-data",但是在引入之后,程序运行起来是来显示出错,获取不到Method.PATCH,即使我在form表单中已经添加了 <input type="hidden" name="_method" value="PATCH" >,在web.xml文件中添加了hiddenHttpMethodFilter,页面显示POST not supported,但我把PATCH换成原始的POST则没有问题,于是找出问题出在当引入enctype="multipart/form-data"后,hiddenHttpMethodFilter里面的request.getparam获取不到值,在网上找了许多资料,也有别人遇到这种问题,最后得到的解决方案是
1.在controller 传入@RequestParam(value = "avatarImage") MultipartFile avatarImage 该类型字段来接受Form表单中的上传文件
2.在hiddenHttpMethodFilter之前添加<filter>
<filter-name>multipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter
</filter-class>
<init-param>
<param-name>multipartResolverBeanName</param-name>
<param-value>multipartResolver</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>multipartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 对request进行一层包装,在这之后可以获取request的值
这样最终我的问题解决了,但是我对背后的原理不是很清楚,希望理解透彻的人,能与我分享。
- hiddenHttpMethodFilter与enctype="multipart/form-data"冲突
- enctype="multipart/form-data"
- enctype="multipart/form-data"
- ENCTYPE="multipart/form-data"
- ENCTYPE=multipart-form-data
- ENCTYPE="multipart/form-data"
- ENCTYPE=MULTIPART/FORM-DATA
- ENCTYPE="multipart/form-data"
- enctype="multipart/form-data"
- enctype="multipart/form-data"
- ENCTYPE="multipart/form-data"
- Form Enctype=multipart/form-data随想
- form表单 enctype="multipart/form-data"
- form表单enctype="multipart/form-data"
- request.getParameterValues()与enctype="multipart/form-data"不能共用
- enctype="multipart/form-data" 作用
- Enctype=multipart/form-data 的作用
- ENCTYPE="multipart/form-data"介绍
- 判断10(or N)个实数最大值
- nyoj 23 取石子(一)
- php过滤特殊的字符串
- 华为机试:实现“十七进制”转“十进制”算法
- 求数组的子数组之和的最大值(分治法)
- hiddenHttpMethodFilter与enctype="multipart/form-data"冲突
- 菜鸟好文推荐(一)——程序员科学熬夜指南
- commonJS requireJS
- 如何在C++Builder中使用Delphi控件
- 我们要懂得尊重别人的劳动成果
- Android Storage Access Framework 使用方法简介
- nyoj 24 素数距离问题
- 深入Java事务的原理与应用
- Linux 串行终端,虚拟终端,伪终端,控制终端,控制台终端的理解