Spring MVC REST风格实现PUT、DELETE请求
来源:互联网 发布:中兴软件南昌有限公司 编辑:程序博客网 时间:2024/06/05 11:02
1、浏览器form表单只支持GET与POST请求,而DELETE、PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转 换为标准的http方法,使得支持GET、POST、PUT与DELETE请求,该过滤器为HiddenHttpMethodFilter,只需要在表单中添加一个隐藏字段”_method”。
如果通过jQuery发送ajax请求,jQuery是支持put和delete请求的,无需配置过滤器HiddenHttpMethodFilter,也无需隐藏字段”_method”。
web.xml配置:
<filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
form表单:
<form action="/artitle/1234" method="post"> <input type="hidden" name="_method" value="put" /> <input type="text" name="isform" value="yes" /> ...... </form>
controller控制器:
@RequestMapping(value = "/artitle/{id}", method = RequestMethod.PUT) @ResponseBody public Map<String, Object> update( @RequestParam(value = "isform", required = false) String isform, @PathVariable("id") String id) { System.out.println("id value: " + id); System.out.println("isform value: " + isform); return null; }
2、无论是form表单还是ajax方式,id参数顺利的获取到了,因为它其实是由@PathVariable获取的,这个没有什么问题,但是http body中提交的参数值isform却为null,查询了一番,原因是:
如果是使用的是PUT方式,SpringMVC默认将不会辨认到请求体中的参数,或者也有人说是Spirng MVC默认不支持 PUT请求带参数,
解决方案也很简单,就是在web.xml中把原来的过滤器改一下,换成org.springframework.web.filter.HttpPutFormContentFilter
<filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>HttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
参照:http://my.oschina.net/buwei/blog/191942
http://blog.csdn.net/u011630575/article/details/50550127
0 0
- Spring MVC REST风格实现PUT、DELETE请求
- Spring MVC restful风格之put and delete
- Spring MVC使用RESTful风格的PUT请求
- Spring Mvc将Get和Post请求转为Delete和Put请求
- spring MVC (5) 利用HiddenHttpMethodFilter来讲post请求变成put或者delete请求
- spring mvc rest 优雅风格
- spring mvc的 rest风格
- Spring mvc rest 风格实例
- restful风格中的put请求和delete请求的用法
- Restful风格中put请求和delete请求
- Spring MVC HiddenHttpMethodFilter 实现 REST风格的URL
- REST架构下,浏览器怎么发送put与delete请求?
- Tomcat默认不支持restful风格的put与delete请求
- SpringMvc下实现delete和put请求
- spring MVC 接收PUT方式请求
- 让spring mvc支持put请求
- 【spring mvc】PUT/POST 请求参数接收
- springmvc实现REST中的GET、POST、PUT和DELETE
- Java 线程池的使用详解
- 树莓派安装MJPG-streamer过程
- 用户空间与内核空间,进程上下文与中断上下文[总结]
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- 二叉树的下一个节点(中序)
- Spring MVC REST风格实现PUT、DELETE请求
- Spring applicationContext.xml约束
- 【算法设计与分析】派
- mac QQ不加载历史记录
- springmvc实现批量删除
- Unity3D-扩展编辑器
- ListView的两种监听某一项的单击事件的方法
- Android数据库查询操作的一次粗心费时
- 数据结构——c语言描述 第五章 (1) 特殊矩阵的压缩存储