在Spring MVC过滤器-HiddenHttpMethodFilter中我们提到,jsp或者说html中的form的method值只能为post或get,我们可以通过HiddenHttpMethodFilter获取put表单中的参数-值,而在Spring3.0中获取put表单的参数-值还有另一种方法,即使用HttpPutFormContentFilter过滤器。
HttpPutFormContentFilter过滤器的作为就是获取put表单的值,并将之传递到Controller中标注了method为RequestMethod.put的方法中。
在web.xml中配置HttpPutFormContentFilter的代码类似如下:
<filter>
<filter-name>httpPutFormcontentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpPutFormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
需要注意的是,该过滤器只能接受enctype值为application/x-www-form-urlencoded的表单,也就是说,在使用该过滤器时,form表单的代码必须如下:
<form action="" method="put" enctype="application/x-www-form-urlencoded">
......
</form>
本文介绍了Spring MVC中处理PUT请求的两种方式,一种是通过HiddenHttpMethodFilter获取PUT表单参数,另一种是使用HttpPutFormContentFilter。HttpPutFormContentFilter能捕获并处理enctype为'application/x-www-form-urlencoded'的PUT表单数据,确保其能被Controller的@RequestMapping(put)方法正确接收。配置该过滤器需在web.xml中添加相应的filter和filter-mapping。请注意,表单提交时enctype属性必须设置正确。

被折叠的 条评论
为什么被折叠?



