浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支 持,Spring3.0 添加了一个过滤器----HiddenHttpMethodFilter,
可以将这些请求转换 为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。
1).在web.xml文件中配置:
<!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为put请求和delete请求! --> <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)在表单域中需要携带一个name值为_method, value值为put或者delete的参数,如下所示:
<form action="${pageContext.request.contextPath }/user/1" method="post"> <input type="hidden" name="_method" value="put"/> <input type="submit" value="Submit"/> </form> <form action="${pageContext.request.contextPath }/user/1" method="post"> <input type="hidden" name="_method" value="delete"/> <input type="submit" value="Submit"/> </form>此时点击Submit按钮,两个表单会分别以put 和delete点的方式进行提交
2.将<a>标签的请求转换成delete------get转delete <!--一个删除链接,为get请求--> <a class="delete" href="emp/${emp.id}">Delete</a> <!--利用js,将get请求转为DELETE请求--> <script type="text/javascript"> $(function() { alert("hello"); $(".delete").click(function(){ var href=$(this).attr("href"); $("form").attr("action",href).submit(); return false; }); }); </script> <!--DELETE请求细节--> <form action="" method="POST"> <input type="hidden" name="_method" value="DELETE" > </form> <!--接收DELETE请求的细节--> @RequestMapping(value="/emp/{id}",method=RequestMethod.DELETE) public String delete(@PathVariable("id") Integer id){ System.out.print(employeeDao.delete(id)); return "redirect:/emps"; }
转载于:https://www.cnblogs.com/Actexpler-S/p/7425221.html
相关资源:JAVA上百实例源码以及开源项目