springmvc 发送PUT 和 DELETE 请求

1、在表单中加入一个隐藏的参数: _method  , 值是 DELETE (或者PUT)

    <form action="springmvc/testRest/a1we2!3#d" method="post">
        <input type="hidden"  name="_method" value="DELETE"></input>
        <input type="submit" value="test Rest delete"></input>
    </form>

2、 发送的POST 请求, 配置一个 HiddenHttpMethodFilter 过滤器:

    <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>

该过滤器会把 获取 String paramValue = request.getParameter("_method");      

paramValue  值是 DELETE , 然后把该POST 的 HTTP请求的 改成 DELETE 请求。

3、在Controller 中匹配,获取上面的 DETELE 请求

        @RequestMapping(value="/testRest/{ss}", method=RequestMethod.DELETE)
        public String testRestDelete(@PathVariable("ss") String sid) {
            System.out.println("test DELETE: " + sid);
            return SUCCESS;
        }

输出: test DELETE: a1we2!3

点了 test Rest delete 这个按钮后,请求的url 是  http://localhost:8080/springmvc-1/springmvc/testRest/a1we2!3#d  , 在springmvc 中通过 PathVariable 注解获取 REST风格的URL 中的参数,获取的时候  ss 值是 a1we2!3 , 保存到 sid 中。 (把 # 后面的内容去掉了)

猜你喜欢

转载自www.cnblogs.com/z360519549/p/9289658.html
今日推荐