一、流程分析

网上图书商城项目学习笔记-028编辑一级分类_sql

二、代码

1.view层

(1)list.jsp

 1 <c:forEach items="${parents }" var="parent">
 2         <tr class="trOneLevel">
 3             <td width="200px;">${parent.cname }</td>
 4             <td>${parent.desc }</td>
 5             <td width="200px;">
 6               <a href="<c:url value='/admin/AdminCategoryServlet?method=addChildPre&pid=${parent.cid }'/>">添加二级分类</a>
 7               <a href="<c:url value='/admin/AdminCategoryServlet?method=editParentPre&cid=${parent.cid }'/>">修改</a>
 8               <a onclick="return confirm('您是否真要删除该一级分类?')" href="<c:url value='/admin/AdminCategoryServlet?method=deleteParent&cid=${parent.cid }'/>">删除</a>
 9             </td>
10         </tr>
11     <c:forEach items="${parent.children }" var="child">
12         <tr class="trTwoLevel">
13             <td>${child.cname }</td>
14             <td>J${child.desc }</td>
15             <td width="200px;" align="right">
16               <a href="<c:url value='/admin/AdminCategoryServlet?method=editChildPre&cid=${child.cid }'/>">修改</a>
17               <a onclick="return confirm('您是否真要删除该二级分类?')" href="<c:url value='/admin/AdminCategoryServlet?method=deleteChild&cid=${child.cid }'/>">删除</a>
18             </td>
19         </tr>
20     </c:forEach>
21 </c:forEach>

 

(2)edit.jsp

 

 1     <script type="text/javascript" src="<c:url value='/jquery/jquery-1.5.1.js'/>"></script>
 2     <script type="text/javascript">
 3         function checkForm() {
 4             if(!$("#cname").val()) {
 5                 alert("分类名不能为空!");
 6                 return false;
 7             }
 8             if(!$("#desc").val()) {
 9                 alert("分类描述不能为空!");
10                 return false;
11             }
12             return true;
13         }
14     </script>
15 <style type="text/css">
16     body {background: rgb(254,238,189);}
17 </style>
18   </head>
19   
20   <body>
21     <h3>修改1级分类</h3>
22     <h1></h1>
23     <p style="font-weight: 900; color: red">${msg }</p>
24     <form action="<c:url value='/admin/AdminCategoryServlet'/>" method="post" onsubmit="return checkForm()">
25         <input type="hidden" name="cid" value="${parent.cid }"/>
26         <input type="hidden" name="method" value="editParent"/>
27         分类名称:<input type="text" name="cname" id="cname" value="${parent.cname }"/><br/>
28         分类描述:<textarea rows="5" cols="50" id="desc" name="desc">${parent.desc }</textarea><br/>
29         <input type="submit" value="修改分类"/>
30         <input type="button" value="返回" onclick="history.go(-1)"/>
31     </form>
32   </body>
33 </html>

 

2.servlet层

(1)AdminCategoryServlet.java

 

 1     /**
 2      * 准备编辑一级分类
 3      * @param req
 4      * @param resp
 5      * @return
 6      * @throws ServletException
 7      * @throws IOException
 8      */
 9     public String editParentPre(HttpServletRequest req, HttpServletResponse resp)
10             throws ServletException, IOException {
11         req.setAttribute("parent", service.load(req.getParameter("cid")));
12         return "/adminjsps/admin/category/edit.jsp";
13     }
14     
15     /**
16      * 编辑一级分类
17      * @param req
18      * @param resp
19      * @return
20      * @throws ServletException
21      * @throws IOException
22      */
23     public String editParent(HttpServletRequest req, HttpServletResponse resp)
24             throws ServletException, IOException {
25         Category parent = CommonUtils.toBean(req.getParameterMap(), Category.class);
26         service.edit(parent);
27         return findAll(req, resp);
28     }

 

3.service层

(1)AdminCategoryService.java 

 1     /**
 2      * 加载分类
 3      * @param cid
 4      * @return
 5      */
 6     public Category load(String cid) {
 7         try {
 8             return categoryDao.load(cid);
 9         } catch (SQLException e) {
10             throw new RuntimeException(e);
11         }
12     }
13     
14     /**
15      * 修改分类
16      * @param category
17      */
18     public void edit(Category category) {
19         try {
20             categoryDao.edit(category);
21         } catch (SQLException e) {
22             throw new RuntimeException(e);
23         }
24     }

 

4.dao层

(1)AdminCategoryDao.java

 1 /**
 2      * 加载分类
 3      * @param cid
 4      * @return
 5      * @throws SQLException
 6      */
 7     public Category load(String cid) throws SQLException {
 8         String sql = "select * from t_category where cid=?";
 9         Map<String,Object> map = qr.query(sql, new MapHandler(), cid);
10         return toCategory(map);
11     }
12     
13     /**
14      * 修改分类
15      * @param category
16      * @throws SQLException
17      */
18     public void edit(Category category) throws SQLException {
19         String sql = "update t_category set cname=?, pid=?, `desc`=? where cid=?";
20         String pid = null;
21         if(category.getParent() != null) {
22             pid = category.getParent().getCid();
23         }
24         Object [] params = {category.getCname(), pid, category.getDesc(), category.getCid()};
25         qr.update(sql, params);
26     }

 

You can do anything you set your mind to, man!