(二十七)分类信息的curd-分类信息修改
修改分类步骤分析:
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 }">
<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">
确定
</button> <FONT face="宋体"> </FONT>
<button type="reset" value="重置" class="button_cancel">重置</button> <FONT face="宋体"> </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-分类信息修改的更多相关文章
- (转载)Android项目实战(二十七):数据交互(信息编辑)填写总结
Android项目实战(二十七):数据交互(信息编辑)填写总结 前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ...
- Android项目实战(二十七):数据交互(信息编辑)填写总结
前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: 先写实现过程,想要学习的同学可以看看,不需要的同学可以直接拉到最下 ...
- (二十五)后台开发-分类信息的curd -展示所有实现
案例1-分类信息的curd 步骤分析: 左边的dtree: 1.导入dtree.js 2.导入dtree.css 3.创建一个div 添加样式 class="dtree" 4.在d ...
- 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 ...
- 根据一个分类id 获取这个分类底下所有子分类的商品信息,根据下面方法查询出所有有关分类id 再 根据这些id去商品表里查询所有商品信息
/** * 检测该分类下所有子分类,并输出ID(包括自己) * 数据库字段 catid pid */ function getChildrenIds ($sort_id){ include_once ...
- extract_by_one 根据二维数组中某字段来提取数组信息,查看有无重复信息
public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...
- Python自然语言处理笔记【二】文本分类之监督式分类的细节问题
一.选择正确的特征 1.建立分类器的工作中如何选择相关特征,并且为其编码来表示这些特征是首要问题. 2.特征提取,要避免过拟合或者欠拟合 过拟合,是提供的特征太多,使得算法高度依赖训练数据的特性,而对 ...
- PIE SDK 距离分类和最大似然分类
1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...
- Citrix 服务器虚拟化之二十七 XenApp6.5发布服务器桌面
Citrix 服务器虚拟化之二十七 XenApp6.5发布服务器桌面 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1) 服务器桌面:发布场中服务器的整个 ...
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序) 通过<如何将一个服务发布成WSDL[编程篇]>的介绍我们知道了如何可以通过编程或者配 ...
随机推荐
- Swift下调用Touch ID实现指纹识别
iOS开发交流群:484884085 欢迎大家增加. 例如以下代码是实现调用5S以上设备指纹识别的代码,依照官网给出的代码,会出现识别成功后非常久才运行成功后调用的代码,逛了非常久的.才知道要将其放入 ...
- linux字符设备驱动程序框架(老方法)
#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #inclu ...
- C#语言循环语句for嵌套
- 数据结构与算法之贪心算法 C++实现
1.基本思路:从问题的某一个初始解触发逐步逼近给定的目标,以尽可能快的求得更好的解. 当达到算法中某一步不能再继续前进时.就停止算法,给出近似值.也就是说贪心算法并不从总体最优考虑,它所作出的选择仅仅 ...
- NAND flash坏区
计算容量 厂家所说的4G指的是4 000 000 000字节,是按1000进制计算的,而电脑是按照1024进制计算的,所以标称为4G的NAND Flash理论容量是4 000 000 000 / 10 ...
- VUE 之 vuex 和 axios
1.Vuex 部分 1.1 Vuex 是专门为vue.js设计的集中式状态管理架构,其实就是将数据存在一个store中,共各个组件共享使用 1.2 配置: 1.2.1 下载:--npm install ...
- aop中获取方法的注解
@Around(value="@annotation(apiLog)") public Object around(ProceedingJoinPoint pjp, ApiLog ...
- oracle的索引有几种?各有何用途?
1. b-tree索引Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名.CREATE INDEX语句时,默认就是在创建b-tree索引.没有特别规定 ...
- CrateDb
CrateDB: Real-time SQL Database for Machine Data & IoT | Crate.io https://crate.io/
- Linux监控命令
dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2它不是一个专业的测试工具,不过如果对于 ...