SpringMVC框架

发布时间:2018年12月19日作者:yafei浏览次数:797

7.8 RESTRUL_CRUD_修改操作

7.8.1 根据id查询员工对象,表单回显

  • 页面链接

<td><a href=”empEdit/${emp.id }”>Edit</a></td>

  • 控制器方法

//修改员工 – 表单回显

@RequestMapping(value=”/empEdit/{id}”,method=RequestMethod.GET)

public String empEdit(@PathVariable(“id”) Integer id,Map<String,Object> map){

map.put(“employee“, employeeDao.get(id));

map.put(“deptList“,departmentDao.getDepartments());

return “edit”;

}

  • 修改页面

<%@ page language=”java” contentType=”text/html; charset=UTF-8″

    pageEncoding=”UTF-8″ import=”java.util.*”%>

<%@ taglib prefix=”form” uri=”http://www.springframework.org/tags/form” %>

<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”

 “http://www.w3.org/TR/html4/loose.dtd”>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

<title>Insert title here</title>

</head>

<body>

<!–

1.为什么使用SpringMVC的form标签

① 快速开发

② 表单回显

2.可以通过modelAttribute指定绑定的模型属性,

若没有指定该属性,则默认从request域中查找command的表单的bean

如果该属性也不存在,那么,则会发生错误。

修改功能需要增加绝对路径,相对路径会报错,路径不对

 –>

 <form:form action=”${pageContext.request.contextPath }/empUpdate”

method=”POST” modelAttribute=”employee”>                        

<%–

         LastName : <form:input path=”lastName” /><br><br>

          –%>

                 <form:hidden path=”id”/>

                 <input type=”hidden” name=”_method” value=”PUT“>

                 <%– 这里不要使用form:hidden标签,否则会报错。

<form:hidden path=”_method” value=”PUT”/>

                         Spring的隐含标签,没有value属性,同时,path指定的值,在模型对象中也没有这个属性(_method),所以回显时会报错。

                         org.springframework.beans.NotReadablePropertyException:

                         Invalid property ‘_method’ of bean class [com.atguigu.springmvc.crud.entities.Employee]:

                         Bean property ‘_method’ is not readable or has an invalid getter method:

                         Does the return type of the getter match the parameter type of the setter?

                  –%>                 

         Email : <form:input path=”email” /><br><br>

         <%

                 Map<String,String> map = new HashMap<String,String>();

                 map.put(“1”, “Male”);

                 map.put(“0″,”Female”);

                 request.setAttribute(“genders”, map);

         %>

         Gender : <br><form:radiobuttons path=”gender” items=”${genders }” delimiter=”<br>”/><br><br>

         DeptName :

                 <form:select path=”department.id”

                                                 items=”${deptList }”

                                                 itemLabel=”departmentName”

                                                 itemValue=”id”></form:select><br><br>

                 <input type=”submit” value=”Submit”><br><br>

 </form:form>

</body>

</html>

7.8.2 提交表单,修改数据

  • 控制器方法

@RequestMapping(value=”/empUpdate”,method=RequestMethod.PUT)

public String empUpdate(Employee employee){

employeeDao.save(employee);              

return “redirect:/empList”;

}


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)