在第8节我们完成了查询和删除商品类别的功能,那么现在实现查询和删除商品的功能就很好做了,原理和第8节一模一样,只是修改一些参数,比如请求不同的action等。由于查询和删除商品不需要弹出新的UI窗口,所以我们只要完成完成query.jsp中相应的部分以及相应的后台即可。

1. 查询商品功能的实现

查询功能主要在查询框中实现,从上一节可知,查询框用的是一个text:"<input id='ss' name='serach' />",我们通过把普通的文本框转化为查询搜索文本框来实现,下面我们在query.jsp中添加相应部分的代码:

$('#ss').searchbox({   //触发查询事件  searcher:function(value,name){ //value表示输入的值  //添加触发代码
          $('#dg').datagrid('load',{//重新load,参数name指定为用户输入value
            name: value  });  },   prompt:'请输入搜索关键字'
});

测试结果如下:

查询很简单,跟上一节load所有商品一样,只不过查询的时候参数设为用户输入的值,加载所有的时候参数设为空即可。

2. 删除商品功能的实现

接下来做删除商品功能,首先我们把query.jsp中相应部分的代码补全:

{  iconCls: 'icon-remove',  text:'删除商品',  handler: function(){  //添加触发代码  var rows = $("#dg").datagrid("getSelections");//判断是否有选中行记录,使用getSelections获取选中的所有行  //返回被选中的行,如果没有任何行被选中,则返回空数组  if(rows.length == 0) {  //弹出提示信息  $.messager.show({ //语法类似于java中的静态方法,直接对象调用  title:'错误提示',  msg:'至少要选择一条记录',  timeout:2000,  showType:'slide',  });  } else {  //提示是否确认删除,如果确认则执行删除的逻辑  $.messager.confirm('删除的确认对话框', '您确定要删除此项吗?', function(r){  if (r){  //1. 从获取的记录中获取相应的的id,拼接id的值,然后发送后台1,2,3,4  var ids = "";  for(var i = 0; i < rows.length; i ++) {  ids += rows[i].id + ",";  }  ids = ids.substr(0, ids.lastIndexOf(","));  //2. 发送ajax请求  $.post("product_deleteByIds.action",{ids:ids},function(result){  if(result == "true") {  //将刚刚选中的记录删除,要不然会影响后面更新的操作  $("#dg").datagrid("uncheckAll");  //刷新当前页,查询的时候我们用的是load,刷新第一页,reload是刷新当前页  $("#dg").datagrid("reload");//不带参数默认为上面的queryParams       } else {  $.messager.show({   title:'删除异常',  msg:'删除失败,请检查操作',  timeout:2000,  showType:'slide',  });  }  },"text");  }  });  }                         }
}

从上面代码中可以看出,删除操作需要先选中至少一条记录,选中后,当确认删除时(即r为真),首先获取用户都勾选了哪些记录,将这些记录的id号拼接起来,然后想后台发送ajax请求,请求productAction中的deleteByIds方法,将拼接好的id作为参数带过去,如果删除成功,则返回一个字符串"true"到前台,然后前台将刚刚勾选记录清掉,以免影响后面更新操作,因为更新也要勾选记录,之后再刷新当前页,reload数据库所有商品信息。

流程很清楚明了,下面我们写后台程序,先从service层开始:

public interface ProductService extends BaseService<Product> {  //查询商品信息,级联类别  public List<Product> queryJoinCategory(String type, int page, int size); //使用商品的名称查询  //根据关键字查询总记录数  public Long getCount(String type);  //根据ids删除多条记录  public void deleteByIds(String ids);
}  @SuppressWarnings("unchecked")
@Service("productService")
public class ProductServiceImpl extends BaseServiceImpl<Product> implements ProductService {  //省略其他代码……
  @Override  public void deleteByIds(String ids) {  String hql = "delete from Product p where p.id in (" + ids + ")";  getSession().createQuery(hql).executeUpdate();  }  }  

接下来完成productAction中的deleteByIds方法:

@Controller("productAction")
@Scope("prototype")
public class ProductAction extends BaseAction<Product> {  //省略其他代码……  public String deleteByIds() {  System.out.println(ids);  productService.deleteByIds(ids);  //如果删除成功就会往下执行,我们将"true"以流的形式传给前台  inputStream = new ByteArrayInputStream("true".getBytes());  return "stream";  }
} 

和之前删除商品类的思路相同,下面在struts.xml中配置:

<action name="product_*" class="productAction" method="{1}">  <!-- 省略其他配置 -->  <result name="stream" type="stream">  <param name="inputName">inputStream</param>  </result>  </action> 

这样字符串"true"就通过流传到前台了,接收到说明删除成功。看一下效果:

测试成功,至此,商品的搜索和删除功能做完了。

  1. <action name="product_*" class="productAction" method="{1}">
  2. <!-- 省略其他配置 -->
  3. <result name="stream" type="stream">
  4. <param name="inputName">inputStream</param>
  5. </result>
  6. </action>

转载于:https://www.cnblogs.com/shanheyongmu/p/5805508.html

【SSH网上商城项目实战11】查询和删除商品功能的实现相关推荐

  1. 【SSH网上商城项目实战23】完成在线支付功能

    转自:https://blog.csdn.net/eson_15/article/details/51464415 上一节我们做好了支付页面的显示,从上一节支付页面显示的jsp代码中可以看出,当用户点 ...

  2. 【SSH网上商城项目实战】之环境搭建填坑

    此篇主要是记录我在从零开始走一遍倪升武大神的[SSH网上商城项目实战]过程中遇到的一些坑并记录解决方法.关于这个项目,大家可以去倪升武的博客学习了解,SSH网上商城项目实战请戳倪升武的项目实战专题. ...

  3. 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

    转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...

  4. 【SSH网上商城项目实战21】从Demo中看易宝支付的流程

    这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后,再做实际的开发,因为是一个Demo,所以我没有考虑一些设计模式的东西,就是直接实现支付功能.实现支付功能需要易宝给我们提供的AP ...

  5. 【SSH网上商城项目实战05】完成数据库的级联查询和分页

    上一节我们完成了EasyUI菜单的实现.这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询.一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取 ...

  6. 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2

    转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主要总 ...

  7. 【SSH网上商城项目实战20】在线支付平台的介绍

    之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了.用户确认了订单后会直接跳转到支付页面进行在线支付,在线支付需要第三方的接口,这一节主要介绍一些关于第三方支付的内容, ...

  8. 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架

    转自:https://blog.csdn.net/eson_15/article/details/51312490 前面两节,我们整合了SSH并且抽取了service和action部分的接口,可以说基 ...

  9. java 商城 商品查询_Javaweb网上商城项目实战(17)实现商品详情查询

    原理分析 具体实现 下面是商品详情页面product_info.jsp显示的样子,我们最初的模板的静态资源已经写死了, 这里我们需要先对这个页面进行改造,使得到时候主页点击商品能输出对应的商品详情页面 ...

最新文章

  1. iis+php解析漏洞修复,IIS7.0畸形解析漏洞通杀0day
  2. 从零开始——电子商务平台01
  3. win10:JDK12.0.1环境变量配置
  4. linux 安装 powershell
  5. 二元运算 FFT+分治
  6. Android初学第21天
  7. Apache 配置文件:.htaccess
  8. Python3的迭代器
  9. 商务英语计算机,怎样练习商务英语口语
  10. 用C语言画一个Q版奥特曼
  11. 微信PC扫码支付(五)-订单查询,关闭订单,下载对账单
  12. 服务器c盘logs文件夹,Win10系统Logs文件夹有什么作用Logs文件夹可以删除吗
  13. Genymotion 自配 AndoidSDK 一直Booting
  14. 智能家居 打造一间乐享智能生活的“聪明屋”
  15. powermock 入门介绍及使用示例
  16. H5C3进阶——播放器
  17. ssssssssssss
  18. springboot单文件下载和多文件压缩zip下载
  19. linux 将sda分区扩容
  20. 【面经】 2018深信服前端面试题

热门文章

  1. maven导出runnable jar
  2. 手工查杀myplayer病毒
  3. 第三周 分队列 mooc 翁恺 c语言
  4. oracle数据库同步异步优劣点,ORACLE数据库异步IO介绍
  5. python访问序列元素的编号用什么括起来_【填空题】序列元素的编号称为 ,它从 开始,访问序列元素时将它用 括起来。...
  6. python文件内容倒序_python实现对列表中的元素进行倒序打印
  7. mysql哪一款好用_用了这么多年MySql,这些好习惯你用过哪些
  8. Jmeter系列之接口断言
  9. ChaiNext:比特币打穿4.2万美元,市场多空胶着
  10. Polkamarkets推出Uniswap流动性计划