使用HiddenHttpMethodFilter过滤器,可以把post请求转换为delete和put。
一、代码实现
(1)在web.xml中配置HiddenHttpMethodFilter过滤器
1 2 3 4 5 6 7 8 9 |
<filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
所有请求都必须经过该过滤器。
(2)需要发送POST请求
这个在发起请求的页面自己配置就好了,记住是POST。
(3)需要在表单提交的时候携带一个name=”_method”的域
值为DELETE或者PUT,从而把POST请求转换成你需要的请求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <form action="******" method="POST"> <input type="hidden" name="_method" value="PUT"> <input type="submit" value="testPUT"> </form> <form action="******" method="POST"> <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="testDELETE"> </form> </body> </html> |
(4)controller需要改写一下
记得把接收方式改成DELETE或者是PUT。
- method=RequestMethod.DELETE
- method=RequestMethod.PUT
(5)要如何获取参数的值?
使用@PathVariable注解用占位符的形式获取。
二、总结
不常见,存疑。