接上一节。
- 我们进行删除操作使用DELETE请求
要想将POST请求转换成PUT、DELETE请求,需要在web.xml中配置过滤器:
代码语言:javascript复制 <!-- 配置 HiddenHttpMethodFilter: 把 POST 请求转为 DELETE、PUT 请求 -->
<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>
由于在list.jsp中:
代码语言:javascript复制<td><a class="delete" href="emp/${emp.id}">Delete</a></td>
这种通过超链接发送的请求是GET请求,因此我们要将其转换成DELETE请求。首先已经在web.xml配置相关的过滤器了。
然后我们在springmvc.xml中配置静态资源处理:
代码语言:javascript复制 <!-- 配置静态资源 -->
<mvc:default-servlet-handler/>
然后在WebContent目录下新建一个scripts文件夹,将jquery-1.9.1.min.js放置进去。这样静态资源文件就可以被访问到了。
但是,由于配置了这个,会导致原有的通过Handler方式访问的方式失效,所以接下来要在springmvc.xml配置文件中配置:
代码语言:javascript复制<mvc:annotation-driven></mvc:annotation-driven>
接下来在list.jsp页面中编写相关js代码使的POST请求转换成DELETE请求:
首先是新建一个表单:type为hidden,name为_method,value为DELETE
代码语言:javascript复制 <form action="" method="POST">
<input type="hidden" name="_method" value="DELETE"/>
</form>
然后引入js,并编写相关的js代码:
代码语言:javascript复制<script type="text/javascript" src="scripts/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>
这段js代码的意思是:在点击class名为delete的超链接时,获取该超链接的href属性,并将该属性赋予form标签的action属性,然后提交该表单。
最后,我们在EmployeeHandler.java中编写删除的方法:
代码语言:javascript复制 @RequestMapping(value="/emp/{id}")
public String delete(@PathVariable("id") Integer id) {
employeeDao.delete(id);
return "redirect:/emps";
}
启动服务器之后:
依次点击删除最后的三项:
出现这个列表表明删除操作是成功的。