当前位置: 代码迷 >> 综合 >> Day39——员工修改——重用页面以及修改完成
  详细解决方案

Day39——员工修改——重用页面以及修改完成

热度:26   发布时间:2024-01-30 06:41:41.0

文章目录

  • 一. 回顾
  • 二. 来到修改页面
  • 三. 重用页面
  • 四. 完成修改

一. 回顾

前面学习了Day38——完成添加功能,今天完成员工修改

二. 来到修改页面

使用 {id} 占位符获取id值,使用 @PathVariable(“id”) 将请求参数绑定到入参中

//来到修改页面,查出当前员工,在页面回显@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);//回到修改页面(add是一个修改添加二合一的页面)return "emp/add";}

三. 重用页面

最关键的是修改页面需要回显功能,而添加页面不需要。

最关键的是使用th:value="${ emp.xxx }"。而当修改完后,添加页面却报错,因为来到添加页面,emp是空的,空对象获取xxx属性肯定会报错啊。因此使用th:if={ emp!=null }来控制是否回显

回显代码如下;

<input name="lastName" type="text" class="form-control"placeholder="zhangsan" th:value="${emp!=null}?${emp.lastName}">
<input name="email" type="email" class="form-control"placeholder="zhangsan@atguigu.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}"><label></label>	
<input class="form-check-input" type="radio" name="gender"value="0" th:checked="${emp!=null}?${emp.gender==0}"><label></label>		
<select class="form-control" name="department.id"><!-- 提交的是部门id --><option th:each="dept:${depts}" th:text="${dept.departmentName}"th:value="${dept.id}"th:selected="${emp!=null}?${dept.id == emp.department.id}"></option>
</select>
<input name="birth" class="form-control" placeholder="zhangsan"th:value="${emp!=null}?${#dates.format(emp.birth, 'yyyy-MM-dd HH:mm')}">
<button type="submit" class="btn btn-primary"th:text="${emp!=null}?'修改':'添加'">添加
</button>														

四. 完成修改

因为是put请求方式,所以要添加以下代码:

<!--发送put请求修改员工数据-->
<!--1.SpringMVC中配置HiddenHttpMethodFilter;(SpringBoot已经配置好了)-->
<!--2.页面创建一个post表单-->
<!--3.创建一个input项,name=“_method”,值就是我们指定的请求方法-->
<!--当来到员工修改页面才使用这个发送put请求--><input type="hidden" name="_method" value="put" th:if="${emp!=null}"><input type="hidden" name="id" th:value="${emp.id}" th:if="${emp!=null}">
//员工修改,需要提交员工id@PutMapping("/emp")public String updateEmployee(Employee employee){System.out.println("修改的员工数据:"+employee);employeeDao.save(employee);return "redirect:/emps";}