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