list.html
<a href="#" th:href="@{/emp/}+${emp.id}" class="btn btn-sm btn-primary">编辑</a>
EmployeeController
//来到修改界面,查出当前员工在页面回显
@GetMapping("/emp/{id}")
public String toEditPage(@PathVariable("id") Integer id, Model model){
Employee employee = employeeDao.getEmpById(id);
model.addAttribute("emp",employee);
//页面要显示所有的部门列表
Collection<Department> departments = departmentDao.getDepartments();
model.addAttribute("depts",departments);
return "emp/add";//add是个修改添加二合一的页面
}
add.html
th:value,th:checked,th:selected
<input type="text" class="form-control" id="LastName" name="lastName" placeholder="LastName" th:value="${emp.lastName}">
<input type="email" class="form-control" id="Email" name="email" placeholder="zhangsan@163.com" th:value="${emp.email}">
<input class="form-check-input" type="radio" name="gender" value="1" th:checked="${emp.gender==1}">
<input class="form-check-input" type="radio" name="gender" value="0" th:checked="${emp!=null}?${emp.gender==0}">
<select class="form-control" name="department.id" >
<option th:selected="${dept.id == emp.department.id}" th:each="dept:${depts}" th:value="${dept.id}" th:text="${dept.departmentName}"></option>
</select>
<input type="text" class="form-control" id="birthDate" placeholder="2012-12-12" name="birth" th:value="
${#dates.format(emp.birth,'yyyy-MM-dd HH:mm:ss')}">
form表单需要区分是员工修改还是添加
修改
<input type="text" class="form-control" id="LastName" name="lastName" placeholder="LastName" th:value="${emp!=null}?${emp.lastName}">
<input type="email" class="form-control" id="Email" name="email" placeholder="zhangsan@163.com" th:value="${emp!=null}?${emp.email}">
<input class="form-check-input" type="radio" name="gender" value="1" th:checked="${emp!=null}?${emp.gender}==1">
<input class="form-check-input" type="radio" name="gender" value="0" th:checked="${emp!=null}?${emp.gender}==0">
<option th:selected="${emp!=null}?${dept.id == emp.department.id}" th:each="dept:${depts}" th:value="${dept.id}" th:text="${dept.departmentName}"></option>
<input type="text" class="form-control" id="birthDate" placeholder="2012-12-12" name="birth" th:value="${emp!=null}?${#dates.format(emp.birth,'yyyy-MM-dd HH:mm:ss')}">
<button type="submit" class="btn btn-primary" th:text="${emp!=null}?'修改':'添加'">添 加</button>
<!--发送put请求-->
<!--1.SpringMVC配置HiddenHttpMethodFilter(springboot自动配置好的WebMvcAutoConfiguration)
2.页面创建一个post表单
3.创建一个 input项,name="_method",值就是我们请求的方式-->
add.html
<input type="hidden" name="_method" value="put" th:if="${emp!=null}">//因为是二合一页面,所以需要if判断
<input type="hidden" name="id" th:value="${emp.id}" th:if="${emp!=null}">
EmployeeController
//员工修改,需要提交员工id @PutMapping("/emp") public String updateEmployee(Employee employee){ employeeDao.save(employee); return "redirect:/emps"; }
====================================================================================================
删除
list.html
<form th:action="@{/emp/}+${emp.id}" method="post">
<input type="hidden" name="_method" value="delete" />
<button type="submit" class="btn btn-sm btn-danger">删除</button>
</form>
EmployeeController
//员工删除 @DeleteMapping("/emp/{id}") public String deleteEmployee(@PathVariable("id") Integer id){ employeeDao.deleteEmpById(id); return "redirect:/emps"; }
修改list.html,th:attr自定义属性
<button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deleteBtn">删除</button>
<form id="deleteEmpForm" method="post"> <input type="hidden" name="_method" value="delete"> </form>
<script> $(".deleteBtn").click(function () { $("#deleteEmpForm").attr("action",$(this).attr("del_uri")).submit(); }) </script>
注意在这之前的js地址要写对
<script src="./Dashboard_files/jquery-3.3.1.slim.min.js" th:src="@{/webjars/jquery/3.4.1/jquery.js}"></script> <script src="./Dashboard_files/popper.min.js" th:src="@{/webjars/popper.js/1.14.3/popper.js}"></script> <script src="./Dashboard_files/bootstrap.min.js" th:src="@{/webjars/bootstrap/4.3.1/js/bootstrap.js}"></script> <!-- Icons --> <script src="./Dashboard_files/feather.min.js" th:src="@{/asserts/js/feather.min.js}"></script>