JavaWeb_MVC案例之修改思路分析
MVC案例之修改思路分析
- 1.修改:
1)先显示(SELECT 操作)修改的页面,再进行修改(update)
2)显示修改页面
1)Update 的超链接:< a href=“edit.do?id=<%= customer.getId() %>”>UPDATE< /a>
2)edit 方法思路:参考注释
3)JSP 页面:
①获取请求域中的 Customer 对象,调用对应的字段的 get 方法来显示值。
②使用隐藏域来保存要修改的 Customer 对象的 id:< input name=“id” type=“hidden” value="<%=request.getParameter(“id”)%>" />
③使用隐藏域来保存 oldName:< input name=“oldName” type=“hidden” value="<%=request.getParameter(“oldName”)%>" />
④关于隐藏域:和其他的表单域一样可以被提交到服务器,只不过在额页面上不显示
⑤提交到 update.do
CustomerServlet中edit方法分析:
/**
* @Title: edit
* @Description: TODO
* @param request
* @param response
* @throws ServletException
* @throws IOException
* @return void
*/
private void edit(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
//1. 获取请求参数 id。
//2. 调用 CustomerDAO 的 customerDAO.get(id) 获取和 id 对应的 Customer 对象 customer。
//4. 响应 updatecustomer.jsp 页面:转发。
}
- 2.修改操作:
1)update 方法思路:参见注释
2)updatecustomer.jsp:
①隐藏域的问题
②回显的问题
CustomerServlet中update方法分析:
/**
* @Title: update
* @Description: TODO
* @param request
* @param response
* @return void
* @throws IOException
* @throws ServletException
*/
private void update(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
//1. 获取表单参数: id,newName,newAddress,newPhone,oldName
//2. 检验 newName是否已经被占用:
//2.1 比较 newName 和 oldName 是否相同,若相同说明 newName 可用。
//2.1 若不相同,则调用 CustomerDAO 的 getCountWithName(String name) 获取 newName 在数据库中是否存在。
//2.2 若返回值大于 0,则响应 updatecustomer.jsp 页面:通过转发的方式来响应 newcustomer.jsp。
//2.2.1 在 updatecustomer.jsp 页面显示一个错误消息:用户名 newName 已经被占用,请重新选择!
//在 request 中放入一个属性 message:用户名 newName 已经被占用, 请重新选择!
//在页面上通过 request.getAttribute("message") 的方式来显示。
//2.2.2 newcustomer.jsp 的表单值可以回显。
//address,phone 显示提交表单的新的值,而 name 显示 oldName,而不是新提交的 newName。
//2.2.3 结束方法:return
//3. 若验证通过,则把表单参数封装为一个 Customer 对象 customer。
//4. 调用 CustomerDAO 的 update(Customer customer) 执行更新操作。
//5. 重定向到 query.do。
}