JavaWeb同步学习笔记之三十六、JavaWeb_MVC案例之修改思路分析

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。
	}

猜你喜欢

转载自blog.csdn.net/baidu_38688346/article/details/88371160