1、创建处理 delete 请求方式的表单,result页面:

    1. <!DOCTYPE html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Title</title>
    6. </head>
    7. <body>
    8. <table id="dataTable" align="center" border="1" cellpadding="0">
    9. <tr>
    10. <th >id</th>
    11. <th>lastName</th>
    12. <th>email</th>
    13. <th>gender</th>
    14. <th>function</th>
    15. </tr>
    16. <tr th:each="employee : ${employeesList}">
    17. <td th:text="${employee.id}"></td>
    18. <td th:text="${employee.lastName}"></td>
    19. <td th:text="${employee.email}"></td>
    20. <td th:text="${employee.gender}"></td>
    21. <td >
    22. <!--<a th:href="@{/deleteId} + ${employee.id}">delete</a>--><!--路径+获取id拼接的方式一-->
    23. <a class="deleteA" @click="deleteEmployee" th:href="@{'/employee/'+${employee.id}}">delete</a>
    24. <a href="">delete</a>
    25. </td>
    26. </tr>
    27. </table>
    28. <!-- 作用:通过超链接控制表单的提交,将post请求转换为delete请求 -->
    29. <form id="delete_form" method="post">
    30. <!-- HiddenHttpMethodFilter要求:必须传输_method请求参数,并且值为最终的请求方式 -->
    31. <input type="hidden" name="_method" value="delete"/>
    32. </form>
    33. <!--引入vue.js-->
    34. <script type="text/javascript" th:src="@{/static/js/vue.js}"></script>
    35. <script type="text/javascript">
    36. var vue = new Vue({ el:"#dataTable",
    37. methods:{
    38. //event表示当前事件
    39. deleteEmployee:function (event) {
    40. //通过id获取表单标签
    41. var delete_form = document.getElementById("delete_form");
    42. //将触发事件的超链接的href属性为表单的action属性赋值
    43. delete_form.action = event.target.href;
    44. //提交表单 delete_form.submit();
    45. //阻止超链接的默认跳转行为
    46. event.preventDefault();
    47. }
    48. }
    49. });
    50. </script>
    51. </body>
    52. </html>

    controller:

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