(二十五)后台开发-分类信息的curd -展示所有实现
- 案例1-分类信息的curd
- 步骤分析:
- 左边的dtree:
- 1.导入dtree.js
- 2.导入dtree.css
- 3.创建一个div 添加样式 class="dtree"
- 4.在div中编写js代码
- 创建一个树
- d = new dTree('d');
- 添加根节点
- 通过 d.add(当前节点的id,父节点的id,显示的名称,点击时候打开的连接,放上去显示的名称,在那个地方打开这个连接)
- 注意:
- 根节点的父节点的id写成-1
- 添加其他节点
- 5.最后通过document.write(d) 写到页面上即可
- 分类信息添加:
- 1.应在在左边的dtree上添加连接(展示所有的分类信息)
- d.add(...,"/store/adminCategory?method=findAll","","mainFrame")
- 2.创建adminCategoryservlet ,编写findAll()
- 查询的结果是一个list,将list放入request域中,然后请求转发/admin/category/list.jsp
- 添加分类的步骤:
- 1.编写一个连接,
- /store/adminCategory?method=addUI
- 2.请求转发到/admin/category/add.jsp
- 3.add.jsp就是一个表单页面
- 编写表单的action属性 /store/adminCategory?method=add
- 给分类的名称字段添加一个name属性 name="cname"
- 4.admincategoryservlet的add方法
- 获取分类的名称
- 封装成category 设置id
- 调用categoryservice的add方法
- 页面重定向 /store/adminCategory?method=findAll
- 5.categoryservice的add方法
- 暂时调用dao
- 6.dao中添加一条数据
- 修改分类步骤分析:
- 1.在list.jsp页面上点击修改(编辑)
- /store/adminCategory?method=getById&cid=???
- 2.在getById方法中
- 获取cid
- 调用service 通过id获取一个分类,
- 将category放入request域中
- 请求转发 edit.jsp
- 3.eidt页面是一个表单
- 添加action属性
- /store/adminCategory?method=update
- 修改内容 点击提交
- 添加隐藏域 cid
- 4.在update方法中
- 获取cid和cname
- 封装成category
- 调用service的update方法
- 重定向/store/adminCategory?method=findAll
- 5.在service的update方法中
- 调用dao更新
- 清空缓存
- 6.dao中更新数据
- 删除分类步骤分析:
- 1.在list.jsp上编写 删除连接
- /store/adminCategory?method=delete&cid=??
- 2.在delete方法中
- 获取cid
- 调用service的delete方法
- 页面重定向/store/adminCategory?method=findAll
- 3.service中delete
- 添加事务
- 通过cid先更新所有的商品分类信息
- 调用dao 删除分类
- 事务控制
- 清空缓存
/store/WebContent/admin/left.jsp
- <%@ page language="java" pageEncoding="UTF-8"%>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>菜单</title>
- <link href="${pageContext.request.contextPath}/css/left.css" rel="stylesheet" type="text/css"/>
- <link rel="StyleSheet" href="${pageContext.request.contextPath}/css/dtree.css" type="text/css" />
- </head>
- <body>
- <table width="100" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td height="12"></td>
- </tr>
- </table>
- <table width="100%" border="0">
- <tr>
- <td>
- <div class="dtree">
- <a href="javascript: d.openAll();">展开所有</a> | <a href="javascript: d.closeAll();">关闭所有</a>
- <script type="text/javascript" src="${pageContext.request.contextPath}/js/dtree.js"></script>
- <script type="text/javascript">
- d = new dTree('d');
- d.add('01',-1,'系统菜单树');
- d.add('0102','01','分类管理','','','mainFrame');
- d.add('010201','0102','展示所有','${pageContext.request.contextPath}/adminCategory?method=findAll','','mainFrame');
- d.add('010202','0102','添加分类','${pageContext.request.contextPath}/adminCategory?method=addUI','','mainFrame');
- d.add('0104','01','商品管理');
- d.add('010401','0104','商品管理','${pageContext.request.contextPath}/adminProduct?method=findAll','','mainFrame');
- d.add('0105','01','订单管理');
- d.add('010501','0105','所有订单','${pageContext.request.contextPath}/adminOrder?method=findAllByState','','mainFrame');
- d.add('010502','0105','未支付订单','${pageContext.request.contextPath}/adminOrder?method=findAllByState&state=0','','mainFrame');
- d.add('010503','0105','已支付订单','${pageContext.request.contextPath}/adminOrder?method=findAllByState&state=1','','mainFrame');
- d.add('010504','0105','已发货订单','${pageContext.request.contextPath}/adminOrder?method=findAllByState&state=2','','mainFrame');
- d.add('010505','0105','已完成订单','${pageContext.request.contextPath}/adminOrder?method=findAllByState&state=3','','mainFrame');
- document.write(d);
- </script>
- </div> </td>
- </tr>
- </table>
- </body>
- </html>
/store/WebContent/WEB-INF/web.xml
- <servlet>
- <description></description>
- <display-name>AdminCategoryServlet</display-name>
- <servlet-name>AdminCategoryServlet</servlet-name>
- <servlet-class>com.louis.web.servlet.AdminCategoryServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>AdminCategoryServlet</servlet-name>
- <url-pattern>/adminCategory</url-pattern>
- </servlet-mapping>
com.louis.web.servlet.AdminCategoryServlet
- public String findAll(HttpServletRequest request, HttpServletResponse response) throws Exception {
- //1.调用categoryservice 查询所有的分类信息 返回值 list
- CategoryService cs=(CategoryService) BeanFactory.getBean("CategoryService");
- List<Category> list = cs.findAll();
- //2.将list放入request域中 请求转发即可
- request.setAttribute("list", list);
- return "/admin/category/list.jsp";
- }
/store/WebContent/admin/category/list.jsp
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <HTML>
- <HEAD>
- <meta http-equiv="Content-Language" content="zh-cn">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <link href="${pageContext.request.contextPath}/css/Style1.css" rel="stylesheet" type="text/css" />
- <script language="javascript" src="${pageContext.request.contextPath}/js/public.js"></script>
- <script type="text/javascript">
- function addCategory(){
- window.location.href = "${pageContext.request.contextPath}/adminCategory?method=addUI";
- }
- </script>
- </HEAD>
- <body>
- <br>
- <table cellSpacing="1" cellPadding="0" width="100%" align="center" bgColor="#f5fafe" border="0">
- <TBODY>
- <tr>
- <td class="ta_01" align="center" bgColor="#afd1f3">
- <strong>分类列表</strong>
- </TD>
- </tr>
- <tr>
- <td class="ta_01" align="right">
- <button type="button" id="add" name="add" value="添加" class="button_add" onclick="addCategory()">
- 添加分类
- </button>
- </td>
- </tr>
- <tr>
- <td class="ta_01" align="center" bgColor="#f5fafe">
- <table cellspacing="0" cellpadding="1" rules="all"
- bordercolor="gray" border="1" id="DataGrid1"
- style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 100%; WORD-BREAK: break-all; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #f5fafe; WORD-WRAP: break-word">
- <tr
- style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">
- <td align="center" width="18%">
- 序号
- </td>
- <td align="center" width="17%">
- 分类名称
- </td>
- <td width="7%" align="center">
- 编辑
- </td>
- <td width="7%" align="center">
- 删除
- </td>
- </tr>
- <c:forEach var="c" items="${ list }" varStatus="vs">
- <tr onmouseover="this.style.backgroundColor = 'white'"
- onmouseout="this.style.backgroundColor = '#F5FAFE';">
- <td style="CURSOR: hand; HEIGHT: 22px" align="center"
- width="18%">
- ${vs.count }
- </td>
- <td style="CURSOR: hand; HEIGHT: 22px" align="center"
- width="17%">
- ${c.cname }
- </td>
- <td align="center" style="HEIGHT: 22px">
- <a href="${ pageContext.request.contextPath }/adminCategory?method=getById&cid=${c.cid}">
- <img src="${pageContext.request.contextPath}/images/i_edit.gif" border="0" style="CURSOR: hand">
- </a>
- </td>
- <td align="center" style="HEIGHT: 22px">
- <a href="javascript:void(0)" onclick="deleteC('${c.cid}')">
- <img src="${pageContext.request.contextPath}/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
- </a>
- </td>
- </tr>
- </c:forEach>
- </table>
- </td>
- </tr>
- </TBODY>
- </table>
- </body>
- <script type="text/javascript">
- function deleteC(cid){
- if(confirm("您确定要删除该分类吗?")){
- location.href="${ pageContext.request.contextPath }/adminCategory?method=delete&cid="+cid;
- }
- }
- </script>
- </HTML>
问题
1、varstatus items 计数 12天的教程
(二十五)后台开发-分类信息的curd -展示所有实现的更多相关文章
- python运维开发(二十五)---cmdb开发
内容目录: 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infr ...
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...
- Bootstrap <基础二十五>警告(Alerts)
警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...
- VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池
VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- webpack4 系列教程(十五):开发模式与webpack-dev-server
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十五):开发模式与 webpack-dev-server>原文地址.更欢迎来我的 ...
- 二十五种网页加速方法和seo优化技巧
一.使用良好的结构 可扩展 HTML (XHTML) 具有许多优势,但是其缺点也很明显.XHTML 可能使您的页面更加符合标准,但是它大量使用标记(强制性的 <start> 和 <e ...
- C#学习基础概念二十五问
C#学习基础概念二十五问 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal ...
- FreeSql (二十五)延时加载
FreeSql 支持导航属性延时加载,即当我们需要用到的时候才进行加载(读取),支持1对1.多对1.1对多.多对多关系的导航属性. 当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们 ...
随机推荐
- argument to nsmutablearray method addobject cannot be nil 警告
You cannot add nil to an NSMutableArray, and you will raise an exception if you try to. There's NSNu ...
- jmeter自定义并发用户数图形插件介绍
Stepping Thread Group马上要被废弃了,废弃原因不知道,官方推荐使用 BlazeMeter Inc.公司贡献的插件Concurrency Thread Group,配合 Throug ...
- Delphi 的内存操作函数(1): 给字符指针分配内存
马上能想到的函数有: GetMem AllocMem ReallocMem FreeMem GetMemory ReallocMemory FreeMemory New Dispose NewStr ...
- vim编码方式配置的学习和思考
哎呀呀,今天9月30号,立即就要十一长假了,心里还有点小小浮躁.工作已经基本做完,想成为技术大牛怎么能够如此浮躁.为了应付浮躁的心灵,决定写一篇小博,平静一把. 今天一个配置文件须要有中文,而且同事是 ...
- SolidEdge 工程图中如何绘制中断视图
右击长条形的视图,点击新增断裂线,然后绘制两个断点 点击完成之后效果如下图所示 如果要修改断裂视图的样式,则选中这个视图,在左键单击,然后点击这个按钮取消显示断裂视图 然后左键单击断裂视图 ...
- 消息列队 分布式事务解办法 celery flower使用总结
前言 项目中有场景 需要用到 分布式事务业务,经过查下资料把学习相关笔记做记录方便他人或者自己后面查看. 场景 在网站A业务中有个操作 是 要在网站B中新建一台服务器跑业务.A中执行B中的接口创建服务 ...
- 模拟 nbut1225 NEW RDSP MODE I
传送门:点击打开链接 题意:输入n.m,x.刚開始有一个1~n的排列.然后定义了一种操作.是将数组中的偶数位数字选出来,依照顺序放到数组最前面,奇数位依照顺序放到偶数位的后面,进行m次这种操作.输出之 ...
- C# - CLR
The Common Language Runtime (CLR), the virtual-machine component of Microsoft's .NET framework, m ...
- 一个TAB的jquery简单写法2
<style> .honver{ color:red;} </style><script src="jquery-1.9.0.min.js">& ...
- poj 3105 Expectation 按位统计
题意: 给n,求sum(i^j)/(n^2),0<=i,j<n.n<10^9 分析: 暴力n^2算法肯定超时.这是logn按位统计算法:按位先算出0出现的个数x,则1出现的个数为n- ...