通过SpringMVC实现一个删除功能
前言:有关vue的使用方式忘得差不多了,希望日后看这篇文章还能回想起一些用法吧
大致逻辑
在一个表格内展示查询到的数据,我们可以通过点击“delete”按钮来删除数据。这个delete按钮是个超链接,使用RESTful方式没法直接发送delete请求,因此给这个超链接绑定了一个点击事件,当点击删除时,会调用dataTable中的deleteEmployee,进而获取到deleteForm表单,进而将触发点击事件的超链接的href属性赋值给表单的action,提交表单。
代码示例
employee_list.html
点击查看代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Employee Info</title>
</head>
<body>
<table id="dataTable" border="1" cellspacing="0" cellpadding="0" style="text-align: center;">
<tr>
<th colspan="5">Employee Info</th>
</tr>
<tr>
<th>id</th>
<th>lastName</th>
<th>email</th>
<th>gender</th>
<th>options(<a th:href="@{/toAdd}">add</a>)</th>
</tr>
<tr th:each="employee : ${employeeList}">
<td th:text="${employee.id}"></td>
<td th:text="${employee.lastName}"></td>
<td th:text="${employee.email}"></td>
<td th:text="${employee.gender}"></td>
<td>
<a @click="deleteEmployee" th:href="@{'/employee/'+${employee.id}}">delete</a>
<a th:href="@{'/employee/'+${employee.id}}">update</a>
</td>
</tr>
</table>
<form id="deleteForm" method="post">
<input type="hidden" name="_method" value="delete">
</form>
<script type="text/javascript" th:src="@{/static/js/vue.js}"></script>
<script type="text/javascript">
var vue = new Vue({
el:"#dataTable",
methods:{
deleteEmployee:function (event) {
//根据id获取表单元素
var deleteForm = document.getElementById("deleteForm");
//将触发点击事件的超链接的href属性赋值给表单的action
deleteForm.action = event.target.href;
//提交表单
deleteForm.submit();
//取消超链接的默认行为
event.preventDefault();
}
}
});
</script>
</body>
</html>
EmployeeController.java
点击查看代码
@Controller
public class EmployeeController {
@Autowired
private EmployeeDao employeeDao;
@RequestMapping(value = "/employee/{id}", method = RequestMethod.DELETE)
public String deleteEmployee(@PathVariable("id") Integer id){
employeeDao.delete(id);
return "redirect:/employee";
}
}
注意点
1.需要在webapp下创建static/js目录,存放veu.js文件,从而引用。新建该文件后,记得要重新打包maven
2.需要在resources目录下的配置文件中,添加下列代码,开放对静态资源的访问。
<!--开放对静态资源的访问-->
<mvc:default-servlet-handler />
<!--开启mvc注解驱动-->
<mvc:annotation-driven />