伊人博客 一款有技术又有生活的博客

SpringMVC PUT请求无法获取参数的解决办法

发布时间:2017-04-06 18:42:33 标签: | 阅读(2795)

今天使用SpringMVC的restful功能,其中GET,POST方式都测试成功了,但是PUT请求却总是各种错误。如果使用HttpServletRequest作为PUT方法的参数,请求可以接收到,但是无法接收到具体传送的数据,每次都是null,而如果使用@RequestParam做参数或者使用@ResponseBody修饰,则客户端直接无法请求,显示400(网页正在被删除,不提供访问)

最后发现@RequestParam或者@RequestBody注解仅适用于GET或POST请求,并不适用于PUT和DELETE。若使用PUT方法,SpringMVC不解释请求包的参数。

解决方案来了:使用HttpPutFormContentFilter来解决

将下边的过滤器放到你的web.xml中即可,而且添加后@RequestParam将恢复正常

<filter>
	<filter-name>httpPutFormFilter</filter-name>
	<filter-class>
	    org.springframework.web.filter.HttpPutFormContentFilter
	</filter-class>
</filter>
<filter-mapping>
	<filter-name>httpPutFormFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>



原创文章如转载,请注明出处“伊人博客

站内搜索
关注公众号(随时搜索)
文章归档
热门推荐
随机推荐
冷门晾晒