1.分析
1.点击修改,跳转到修改的页面,点击哪个,则获取哪个员工的信息,即默认修改页面的值。
2.点击确认修改,修改完成后重定向到管理员工页面。如图:
2.步骤
a.在接口中声明去修改和修改的方法
b.实现接口中的方法
c.点击修改跳转Update.jsp
d.Update.jsp提交请求参数
e.servlet获取请求参数
f.调用dao,将修改后的数据添加到数据库中
g.重定向到员工管理(“/emp”),执行查询所有员工,显示到页面。
代码:
a:
IEmpDAO.java
b:
EmpDAOImpl.java
c:
emp.jsp
ToUpdateEmpServlet.java
@WebServlet("/toUpdate") public class ToUpdateEmpServlet extends HttpServlet { /*去修改:用户点击修改按钮请求到达此servlet * 获取当前要修改员工的数据,共享给jsp,请求转发 * */ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*获取请求参数id*/ String id = req.getParameter("id"); /*根据id获取员工数据*/ EmpDAOImpl dao=new EmpDAOImpl(); Map<String, Object> emp = dao.getEmp(Integer.parseInt(id)); /*请求共享数据(此处我们共享的是一个map不是一个List<map>)*/ req.setAttribute("emp",emp); /*请求转发到update.jsp*/ req.getRequestDispatcher("update.jsp").forward(req,resp); } }
d:
update.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <head> <title>修改</title> <style type="text/css"> fieldset{ 300px;margin: 100px auto;} </style> </head> <body> <fieldset id=""> <legend>修改员工</legend> <form action="/day49/update" method="post"> <input type="hidden" name="id" value="${emp.id}" /> <div> 员工姓名: <input name="name" value="${emp.name}" /> </div> <div> 员工手机: <input name="telephone" value="${emp.telephone}" /> </div> <div> 员工部门: <select name="deptID" id="deptID" > <option value="1" ${emp.deptID==1?"selected":""} >总经办</option> <option value="2" ${emp.deptID==2?"selected":""} >人事部</option> <option value="3" ${emp.deptID==3?"selected":""} >业务部</option> </select> </div> <div> 员工角色: <select name="roleID" id="roleID" > <option value="1" id="r1">超级管理员</option> <option value="2" id="r2">员工管理员</option> <option value="3" id="r3">业务管理员</option> </select> </div> <div> 员工状态: <select name="state" > <option value="0" id="s0">离职</option> <option value="1" id="s1">在职</option> </select> </div> <button>修改</button> </form> </fieldset> <script> // 当前表单的表单元素 够不够 // 让 角色下拉框中的 1 2 3 document.getElementById("r"+${emp.roleID}).selected = "selected"; document.getElementById("s"+${emp.state}).selected = "selected"; </script> </body> </html>
e,f,g:
UpdateEmpServlet.java
@WebServlet("/update") public class UpdateEmpServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*处理中文乱码*/ req.setCharacterEncoding("UTF-8"); /**获取请求参数*/ String name = req.getParameter("name"); String telephone = req.getParameter("telephone"); String deptID = req.getParameter("deptID"); String roleID = req.getParameter("roleID"); String state = req.getParameter("state"); String id = req.getParameter("id"); /*生成员工对象*/ Employee emp=new Employee(Integer.parseInt(id),name,telephone,Integer.parseInt(deptID),Integer.parseInt(roleID),Integer.parseInt(state)); /*调用dao将数据添加到数据库中*/ IEmpDAO dao=new EmpDAOImpl(); dao.update(emp); /*重定向到/emp*/ resp.sendRedirect("/day49/emp"); } }