基于SpringBoot的基本修改,删除操作

1,354 阅读1分钟

这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战

修改操作

我们上文说到,我们实现了,第一个功能,这篇文章说一下我们其他的功能

首先对编辑按钮添加超链接

老样子我们修改之后的HTML会一同展示出来

我们还是使用我们的添加页面作为我们的修改页面的基础,我们添加和修改页面是二合一的

/**
     * 来到修改页面,查出当前员工,在页面回显
     */
    @GetMapping("/emp/{id}")
    public String toEditPage(@PathVariable("id") Integer id,Model model){

        Employee employee = employeeDao.get(id);
        model.addAttribute("emp",employee);

        //页面需要显示所有部门列表
        Collection<Department> departments = departmentDao.getDepartments();
        model.addAttribute("depts",departments);
        //修改添加二合一页面
        return "emp/add";
    }

我们使用两种不同的请求方式来区分我们获取员工信息和修改员工信息

我们刚刚添加员工数据是使用POST的方式来获取的,我们想把修改ID改成put的方式。

	/**
     * 员工修改;需要提交员工ID
     */
    @PutMapping("emp")
    public String updateEmployee(Employee employee){
        System.out.println("修改员工数据:"+employee);
        employeeDao.save(employee);
        return "redirect:emps";
    }

删除操作

我们只需要将我们功能绑定到代码上就可以

/**
     * 员工删除
     */

    @PostMapping("/emp/{id}")
    public String deleteEmployee(@PathVariable("id")Integer id){
        System.out.println(id);
        employeeDao.delete(id);
        return "redirect:/emps";
    }

list.HTML

<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang="en" xmlns:th="http://www.thymeleaf.org">

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<meta name="description" content="">
	<meta name="author" content="">

	<title>Dashboard Template for Bootstrap</title>
	<!-- Bootstrap core CSS -->
	<link href="asserts/css/bootstrap.min.css" th:href="@{/webjars/bootstrap/4.0.0/css/bootstrap.css}" rel="stylesheet">

	<!-- Custom styles for this template -->
	<link href="asserts/css/dashboard.css" th:href="@{/asserts/css/dashboard.css}" rel="stylesheet">
	<style type="text/css">
		/* Chart.js */

		@-webkit-keyframes chartjs-render-animation {
			from {
				opacity: 0.99
			}
			to {
				opacity: 1
			}
		}

		@keyframes chartjs-render-animation {
			from {
				opacity: 0.99
			}
			to {
				opacity: 1
			}
		}

		.chartjs-render-monitor {
			-webkit-animation: chartjs-render-animation 0.001s;
			animation: chartjs-render-animation 0.001s;
		}
	</style>
</head>

<body>
<!--引入抽取的topbar-->
<!--模板名:会使用thymeleaf的前后缀配置规则进行解析-->
<div th:replace="commons/bar::topbar"></div>

<div class="container-fluid">
	<div class="row">
		<!--引入侧边栏-->
		<div th:replace="commons/bar::sidebar(activeUri='emps')"></div>

		<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
			<h2><a class="btn btn-sm btn-success" href="emp" th:href="@{/emp}">员工添加</a></h2>
			<div class="table-responsive">
				<table class="table table-striped table-sm">
					<thead>
					<tr>
						<th>#</th>
						<th>lastName</th>
						<th>email</th>
						<th>gender</th>
						<th>department</th>
						<th>birth</th>
						<th>操作</th>
					</tr>
					</thead>
					<tbody>
					<tr th:each="emp:${emps}">
						<td th:text="${emp.id}"></td>
						<td>[[${emp.lastName}]]</td>
						<td th:text="${emp.email}"></td>
						<td th:text="${emp.gender}==0?'女':'男'"></td>
						<td th:text="${emp.department.departmentName}"></td>
						<td th:text="${#dates.format(emp.birth, 'yyyy-MM-dd HH:mm')}"></td>
						<td>
							<a class="btn btn-sm btn-primary" th:href="@{/emp/}+${emp.id}">编辑</a>
							<button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deleteBtn">删除</button>
						</td>
					</tr>
					</tbody>
				</table>
			</div>
		</main>
		<form id="deleteEmpForm"  method="post">
			<input type="hidden" name="_method" value="delete"/>
		</form>
	</div>
</div>

<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="asserts/js/jquery-3.2.1.slim.min.js" th:src="@{/webjars/jquery/3.3.1/jquery.js}"></script>
<script type="text/javascript" src="asserts/js/popper.min.js" th:src="@{/webjars/popper.js/1.11.1/dist/popper.js}"></script>
<script type="text/javascript" src="asserts/js/bootstrap.min.js" th:src="@{/webjars/bootstrap/4.0.0/js/bootstrap.js}"></script>

<!-- Icons -->
<script type="text/javascript" src="asserts/js/feather.min.js" th:src="@{/asserts/js/feather.min.js}"></script>
<script>
	feather.replace()
</script>
<script>
	$(".deleteBtn").click(function(){
		//删除当前员工的
		$("#deleteEmpForm").attr("action",$(this).attr("del_uri")).submit();
		return false;
	});
</script>
</body>
</html>