SpringMvc实现RESTful风格的delete和put请求

2018-03-21 21:17:49
706次阅读
0个评论

首先,在web.xml中需要创建一个过滤器:

<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>
注意:
这个过滤器必须放在dispatcher之前,不然会报错,功能就是将post或者get请求转化为标准的http请求,然后在对应的controller中进行处理即可。
ex:

在table中有这么一列:
<td><a class="delete" href="emp/${emp.id}">Delete</a></td>

添加如下的JS脚本:


<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>  
    <script type="text/javascript">  
        $(function(){  
            $(".delete").click(function(){  
                var href = $(this).attr("href");  
                $("form").attr("action", href).submit();/*定义表单提交的地址*/  
                return false;  
            });  
        })  
    </script>

当点击delete这个超链接的时候,会通过表单实现post提交
表单中有一个隐藏域,通过DELETE方式提交:


<form action="" method="post">  
    <input type="hidden" name="_method" value="DELETE"/>  
</form>

在controller进行捕获和获取即可:


@RequestMapping(value = "/emp/{id}",method = RequestMethod.DELETE)  
   public String delete(@PathVariable("id") Integer id){  
       employeeDao.delete(id);  
       return "redirect:/emps";  
   }


收藏00

登录 后评论。没有帐号? 注册 一个。