修改分类步骤分析:
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中更新数据

/store/WebContent/admin/category/list.jsp

/store/src/com/louis/web/servlet/AdminCategoryServlet.java

/**
* 通过id获取分类信息
* @param request
* @param response
* @return
* @throws Exception
*/
public String getById(HttpServletRequest request, HttpServletResponse response) throws Exception {
//1.接受cid
String cid = request.getParameter("cid"); //2 调用service完成 查询操作 返回值:category
CategoryService cs=(CategoryService) BeanFactory.getBean("CategoryService");
Category c=cs.getById(cid); //3.将category放入request域中, 请求转发 /admin/category/edit.jsp
request.setAttribute("bean", c);
return "/admin/category/edit.jsp";
}

/store/src/com/louis/service/impl/CategoryServiceImpl.java

/*
* 通过cid获取一个分类对象
*/
@Override
public Category getById(String cid) throws Exception {
CategoryDao cd = (CategoryDao) BeanFactory.getBean("CategoryDao");
return cd.getById(cid);
}

/store/src/com/louis/dao/impl/CategoryDaoImpl.java

    /**
* 通过id获取一个分类
*/
@Override
public Category getById(String cid) throws Exception {
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category where cid = ? limit 1";
return qr.query(sql, new BeanHandler<>(Category.class), cid);
}

/store/WebContent/admin/category/edit.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<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" type="text/css" rel="stylesheet">
</HEAD> <body>
<form id="userAction_save_do" name="Form1" action="${pageContext.request.contextPath}/adminCategory?method=update" method="post">
<!-- 隐藏域 存放cid -->
<input type="hidden" name="cid" value="${bean.cid }">
&nbsp;
<table cellSpacing="1" cellPadding="5" width="100%" align="center" bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0">
<tr>
<td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"
height="26">
<strong><STRONG>编辑分类</STRONG>
</strong>
</td>
</tr> <tr>
<td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
分类名称:
</td>
<td class="ta_01" bgColor="#ffffff" colspan="3">
<input type="text" name="cname" id="userAction_save_do_logonName" value="${bean.cname }" class="bg"/>
</td>
</tr> <tr>
<td class="ta_01" style="WIDTH: 100%" align="center"
bgColor="#f5fafe" colSpan="4">
<button type="submit" id="userAction_save_do_submit" value="确定" class="button_ok">
确&#23450;
</button> <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
<button type="reset" value="重置" class="button_cancel">重置</button> <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
<INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回"/>
<span id="Label1"></span>
</td>
</tr>
</table>
</form>
</body>
</HTML>

/store/WebContent/admin/category/edit.jsp

/store/src/com/louis/web/servlet/AdminCategoryServlet.java

/**
* 更新分类信息方法
* @param request
* @param response
* @return
* @throws Exception
*/
public String update(HttpServletRequest request, HttpServletResponse response) throws Exception {
//1.获取cid cname
//2.封装参数
Category c=new Category();
c.setCid(request.getParameter("cid"));
c.setCname(request.getParameter("cname")); //3.调用service 完成更新操作
CategoryService cs=(CategoryService) BeanFactory.getBean("CategoryService");
cs.update(c); //4.重定向 查询所有
response.sendRedirect(request.getContextPath()+"/adminCategory?method=findAll"); return null;
}

/store/src/com/louis/service/impl/CategoryServiceImpl.java

/**
* 更新分类
*/
@Override
public void update(Category c) throws Exception {
//1.调用dao更新
CategoryDao cd = (CategoryDao) BeanFactory.getBean("CategoryDao");
cd.update(c); //2.清空缓存
CacheManager cm = CacheManager.create(CategoryServiceImpl.class.getClassLoader().getResourceAsStream("ehcache.xml"));
Cache cache = cm.getCache("categoryCache");
cache.remove("clist");
}

/store/src/com/louis/dao/impl/CategoryDaoImpl.java

/**
* 更新
*/
@Override
public void update(Category c) throws Exception {
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
String sql="update category set cname = ? where cid = ?";
qr.update(sql, c.getCname(),c.getCid());
}

问题

1、为什么要使用隐藏域

答:因为是cid

(二十七)分类信息的curd-分类信息修改的更多相关文章

  1. (转载)Android项目实战(二十七):数据交互(信息编辑)填写总结

    Android项目实战(二十七):数据交互(信息编辑)填写总结   前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ...

  2. Android项目实战(二十七):数据交互(信息编辑)填写总结

    前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: 先写实现过程,想要学习的同学可以看看,不需要的同学可以直接拉到最下 ...

  3. (二十五)后台开发-分类信息的curd -展示所有实现

    案例1-分类信息的curd 步骤分析: 左边的dtree: 1.导入dtree.js 2.导入dtree.css 3.创建一个div 添加样式 class="dtree" 4.在d ...

  4. python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为

    python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...

  5. 根据一个分类id 获取这个分类底下所有子分类的商品信息,根据下面方法查询出所有有关分类id 再 根据这些id去商品表里查询所有商品信息

    /** * 检测该分类下所有子分类,并输出ID(包括自己) * 数据库字段 catid pid */ function getChildrenIds ($sort_id){ include_once ...

  6. extract_by_one 根据二维数组中某字段来提取数组信息,查看有无重复信息

    public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...

  7. Python自然语言处理笔记【二】文本分类之监督式分类的细节问题

    一.选择正确的特征 1.建立分类器的工作中如何选择相关特征,并且为其编码来表示这些特征是首要问题. 2.特征提取,要避免过拟合或者欠拟合 过拟合,是提供的特征太多,使得算法高度依赖训练数据的特性,而对 ...

  8. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  9. Citrix 服务器虚拟化之二十七 XenApp6.5发布服务器桌面

    Citrix 服务器虚拟化之二十七  XenApp6.5发布服务器桌面 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  10. WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)

    原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序) 通过<如何将一个服务发布成WSDL[编程篇]>的介绍我们知道了如何可以通过编程或者配 ...

随机推荐

  1. mac 安装ANT

    http://blog.csdn.net/crazybigfish/article/details/18215439 1.下载ant:官网下载 当前最新版是Apache Ant 1.9.3,可以下载那 ...

  2. HDU 2009 整除的尾数 题解

    Problem Description 一个整数,仅仅知道前几位,不知道末二位.被还有一个整数除尽了.那么该数的末二位该是什么呢?   Input 输入数据有若干组,每组数据包括二个整数a,b(0&l ...

  3. react map 遍历

    1.map方法 注:map 返回的是一个新数组 class App extends Component { // constructor(props) { // super(props); // th ...

  4. SQL数据分组后取最大值或者取前几个值(依照某一列排序)

    今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方 ...

  5. php闭包实例

    php闭包函数,一个典型的实例 function getMoney() { $rmb = 1; $dollar = 6; $func = function($dollar) use (&$rm ...

  6. wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  7. npm的常用配置

    第一次使用需要初始化 npm init -y npm-tut { "requires": true, "lockfileVersion": 1, "d ...

  8. 设计模式学习笔记——Observer观察者模式

    观察者模式里面有两个东西:观察者(Observer)和目标(Subject).当目标发生变化的时候,观察者随之起舞,也作出相应的变化.此为观察者模式. 这是怎么做到的?主要是目标里面存有一份观察者的名 ...

  9. HDU 6061 RXD and functions NTT

    RXD and functions Problem Description RXD has a polynomial function f(x), f(x)=∑ni=0cixiRXD has a tr ...

  10. jvm 命令

    jps  jps主要用来输出JVM中运行的进程状态信息.语法格式如下: jps [options] [hostid] 如果不指定hostid就默认为当前主机或服务器. -q 不输出类名.Jar名和传入 ...