接上一节。
首先是在EmployeeHandler.java中编写toEditEmployeePage方法:
@RequestMapping(value="/emp/{id}",method=RequestMethod.GET)
public String toEditEmployeePage(@PathVariable("id") Integer id,
Map<String,Object> map) {
map.put("employee", employeeDao.get(id));
map.put("departments", departmentDao.getDepartments());
return "add";
}
然后是在add.jsp中进行相应的修改:
<form:form action="${pageContext.request.contextPath}/emp" method="POST"
modelAttribute="employee">
<!-- path属性对应html标签的name属性 -->
<c:if test="${employee.id == null}">
LastName: <form:input path="lastName"/>
</c:if>
<c:if test="${employee.id != null}">
<form:hidden path="id"/>
<input type="hidden" name="_method" value="PUT"/>
</c:if>
首先是修改提交的路径:${pageContext.request.contextPath}/emp。一定要修改这。然后是对传过来的employee的id进行判断,如果是空,则说明是添加操作,所以将lastname输入框添加到里面,如果不为空,则表明是修改操作,则需要隐藏一个id,用于传给后台用于获取原本雇员的名字。接着设置一个隐藏域,用于将POST请求转换为PUT请求。
接下来在EmployeeHandler.java中编写更新方法update:
@ModelAttribute
public void getEmployee(@RequestParam(value="id",required=false) Integer id,
Map<String,Object> map) {
if(id != null) {
map.put("employee", employeeDao.get(id));
}
}
@RequestMapping(value="/emp",method=RequestMethod.PUT)
public String update(Employee employee) {
employeeDao.save(employee);
return "redirect:/emps";
}
这里为了获得原有的lastname,需要用@ModelAttribute直接标识一个获得雇员信息的方法。
启动服务器:
点击最后一个Edit:
并修改相应信息:
点击提交:
相关信息已被修改,说明修改操作是成功的。 至此,springmvc的增删改查基本操作就已经全部完成了。