zoukankan      html  css  js  c++  java
  • JavaWeb--MVC案例1-------(6)修改

    修改:
      先显示(SELECT 操作)修改的页面,再进行修改(update)
      显示修改页面
        Update 的超链接:<a href="edit.do?id=<%= customer.getId() %>">UPDATE</a>
      edit 方法: 参考注释
      JSP 页面:
        获取请求域中的 Customer 对象,调用对应的字段的 get 方法来显示值。
        使用隐藏域来保存要修改的 Customer 对象的 id:<input type="hidden" name="id" value=“<%= customer.getId() %>"/>
        使用隐藏域来保存 oldName:<input type="hidden" name=“oldName" value=“<%= customer.getName() %>"/>
      关于隐藏域:和其他的表单域一样可以被提交到服务器,只不过在页面上不显示
      提交到 update.do

    edit方法

     private void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
    
            String id = req.getParameter("id");
    
            String forwardPath = "error.jsp";
            //调用customerDAO的get(int id)获取和id对应的Customer对象customer
            Customer customer = customerDAO.get(Integer.parseInt(id));
            if(customer != null){
                forwardPath = "/updateCustomer.jsp";
                req.setAttribute("customer", customer);
            }
    
            req.getRequestDispatcher(forwardPath).forward(req, resp);
    
        }
    

      然后到updateCustomer.jsp中

    <%@ page import="mvccases.Customer" %><%--
      Created by IntelliJ IDEA.
      User: Skye
      Date: 2017/12/11
      Time: 15:30
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    
    
    <body>
    <%
        Object message = request.getAttribute("message");
        if(message != null){
    %>
            <br>
            <font color="red"><%= message%></font>
            <br>
            <br>
    <%
        }
        String id = null;
        String name = null;
        String address = null;
        String phone = null;
        String oldName = null;
        Customer customer = (Customer)request.getAttribute("customer");
    
        if(customer != null){
            id = customer.getId() + "";
            name = customer.getName();
            oldName = customer.getName();
            address = customer.getAddress();
            phone = customer.getPhone();
        } else{
            id = request.getParameter("id");
            name = request.getParameter("name");
            oldName = request.getParameter("oldName");
            address = request.getParameter("address");
            phone = request.getParameter("phone");
        }
    %>
    
    <form action="update.do" method="post">
    
        <%--隐藏域 --%>
        <input type="hidden" name="id" value="<%= id%>"/>
        <input type="hidden" name="oldName" value="<%= oldName%>"/>
    
        <table>
            <tr>
                <td>Name:</td>
                <td><input type="text" name="name" value="<%= name%>"/></td>
            </tr>
    
            <tr>
                <td>Address:</td>
                <td><input type="text" name="address" value="<%= address%>"/></td>
            </tr>
    
            <tr>
                <td>Phone:</td>
                <td><input type="text" name="phone" value="<%= phone%>"/></td>
            </tr>
    
            <tr>
                <td><input type="submit" name="Submit"/></td>
    
            </tr>
            <%-- <form>
                 <tr>
                     <th>ID</th>
                     <th>Name</th>
                     <th>Address</th>
                     <th>Phone</th>
                 </tr>
    
                 <tr>
                     <td><%=customer.getId()%></td>
                     <td><%=customer.getName()%></td>
                     <td><%=customer.getAddress()%></td>
                     <td><%=customer.getPhone()%></td>
                 </tr>
             </form>--%>
        </table>
    </form>
    </body>
    </html>
    

      然后使用update()方法更新

    private void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
            String idStr = req.getParameter("id");
            String name = req.getParameter("name");
            String address = req.getParameter("address");
            String phone = req.getParameter("phone");
            String oldName = req.getParameter("oldName");
    
            if(!oldName.equalsIgnoreCase(name)){
                long count = customerDAO.getCountWithName(name);
                //当名字被占用时
                if(count>0) {
                    req.setAttribute("message", "用户名:" + name + "已被占用,请重新选择");
    
                    req.getRequestDispatcher("/updateCustomer.jsp").forward(req, resp);
                    return;
                }
            }
            Customer customer = new Customer(name, address, phone);
            customer.setId(Integer.parseInt(idStr));
    
            customerDAO.update(customer);
    
            resp.sendRedirect("query.do");
    
        }
    

      

  • 相关阅读:
    html表单的创建
    mysql数据库连接标准操作
    关于Apache+MySQL+PHP下载及配置注意事项
    两个范例
    Stack类
    Collections类集
    key可以重复的map集合:IdentityHashMap
    foreach对集合的输出作用
    ListIterator接口
    【官方方法】xcode7免证书真机调试
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8024904.html
Copyright © 2011-2022 走看看