SSH电子商务新项目实战演练之八:查寻和删掉产

摘要: 上一节大家进行了应用DataGrid显示信息全部产品信息内容,这节大家刚开始加上好多个作用:加上、升级、删掉和查寻。最先大家完成下前台接待的显示信息,随后再做后台管理获得数...

上一节大家进行了应用DataGrid显示信息全部产品信息内容,这节大家刚开始加上好多个作用:加上、升级、删掉和查寻。最先大家完成下前台接待的显示信息,随后再做后台管理获得数据信息。

1. 加上、升级、删掉和查寻作用的前台接待完成

DataGrid控制里有一个toolbar特性,是加上专用工具栏的,大家能够在toolbar特性中加上这种按键来完成相对的作用。首先看一下官方网文本文档对toolbar的界定:

SSH电商项目实战之八:查询和删除商品类别功能的实现

大家应用数字能量数组的方法界定专用工具栏,在query.jsp网页页面中澳加上以下编码:

XML/HTML编码 %@ page language= java  import= java.util.*  pageEncoding= UTF-8 %   !DOCTYPE HTML PUBLIC  -//W3C//DTD HTML 4.01 Transitional//EN   html     head     %@ include file= /f  %     style type= text/css    body {   margin: 1px;   }   .searchbox {   margin: -3;   }    /style     script type= text/javascript    $(function(){   $('#dg').datagrid({   //url详细地址改成恳求categoryAction   url:'ount.action',     singleSelect:false, //假如为真,只容许单行显示信息,全选作用无效   //设定分页查询   pagination:true,   //设定每张显示信息的纪录数,默认设置是10个   pageSize:5,   //设定可选择的每张纪录数,供客户挑选,默认设置是10,20,30,40...   pageList:[5,10,15,20],   idField:'id',//特定id为标志字段名,在删掉,升级的情况下有效,假如配备此字段名,在换页时,换页不容易危害选定的项     /*********************加上的编码***********************/   toolbar: [{   iconCls: 'icon-add',   text:'加上类型',   handler: function(){   alert('--添加类型--');   }   },'-',{   iconCls: 'icon-edit',   text:'升级类型',   handler: function(){   alert('--升级类型--');   }   },'-',{   iconCls: 'icon-remove',   text:'删掉类型',   handler: function(){   //分辨是不是有选定行纪录,应用getSelections获得选定的全部行   var rows = $( #dg ).datagrid( getSelections    //回到被选定的行,假如沒有一切行被选定,则回到空数字能量数组   if(rows.length == 0) {   //弹出来提醒信息内容   $.messager.show({ //英语的语法相近于java中的静态数据方式,立即目标启用   title:'不正确提醒',   msg:'最少应选择一条纪录',   timeout:2000,   showType:'slide',   });   } else {   //提醒是不是确定删掉,假如确定则实行删掉的逻辑性   $.messager.confirm('删掉确实认会话框', '您明确要删掉该项吗?', function(r){   if (r){   // 撤出实际操作;   alert( --删掉实际操作-- )   }   });   }   }   },'-',{ //查寻按键并不是LinkButton,它有英语的语法,可是也适用分析HTML标识   text: input id='ss' name='serach' /    }],     //把一般的文字框转换为查寻检索文字框   $('#ss').searchbox({   //开启查寻恶性事件   searcher:function(value,name){ //value表明键入的值   //查寻实际操作   },   prompt:'请键入检索重要字' //默认设置的显示信息   });   /*********************************************************************/     });    /script     /head       body     table id= dg /table     /body   /html  

那样大家就搭好啦加上、升级、删掉和查寻的前台接待架构了,如今能够在前台接待显示信息了,后台管理沒有数据信息回来,仅仅弹出来个提醒框,但是显示信息作用早已进行,看一下实际效果:

SSH电商项目实战之八:查询和删除商品类别功能的实现

接下去大家逐一来进行相对的作用。

2. DataGrid类型查寻的完成

查寻的完成是非常简单的,在搜索框中键入重要字,随后将重要字做为主要参数发送给action,随后Service从数据信息库文件取出数据信息,装包成json文件格式传入前台接待来显示信息就可以,这一全过程旁边面显示信息全部产品信息内容是一样的,大家只必须在上边jsp中加上检索一部分的编码就可以,别的无需更改,加上的编码以下:

JavaScript编码 //把一般的文字框转换为查寻检索文字框  $('#ss').searchbox({   //开启查寻恶性事件   searcher:function(value,name){ //value表明键入的值   //alert(value +  ,  + name)   //获得当今查寻的重要字,根据DataGrid载入相对的信息内容,应用load载入和显示信息第一页的全部行。   //假如特定了主要参数,它将替代'queryParams'特性。一般能够根据传送一些主要参数实行一次查寻,根据启用这一方式会往上面url特定的action去推送恳求,从网络服务器载入新数据信息。   $('#dg').datagrid('load',{   type: value   });     },   prompt:'请键入检索重要字'  }); 

load方式能够载入显示信息第一页的全部行,它有一个主要参数,假如特定了,便会去携带么的queryParams,不然默认设置传送上边的queryParams特定的主要参数,大家在这里里将type设定成value的值,即客户键入的查寻重要字,随后传入action,后台管理依据客户键入的value在数据信息库文件搜索,并回到给前台接待。实行結果以下:

SSH电商项目实战之八:查询和删除商品类别功能的实现

那样我便进行了检索的作用了,较为简易。

3. DataGrid类型删掉的完成

如今大家来完成删掉作用,从上边的jsp中能看出,删掉前分辨客户有木有选定某条纪录,假如沒有则给客户一个提醒,假如有选定,则弹出来对话框让客户确定,假如为真,则实行删掉作用。有一个关键点要留意下,假如要想一次性删掉好几条纪录,那麼上边的singleSelect特性要设定成false。

最先,大家把上边query.jsp中删掉一部分的编码填补完,见下边:

JavaScript编码 {   iconCls: 'icon-remove',   text:'删掉类型',   handler: function(){   //分辨是不是有选定行纪录,应用getSelections获得选定的全部行   var rows = $( #dg ).datagrid( 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( category_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 );   }   });   }   }  } 

假如客户挑选删掉,最先会弹出来一个会话框,当客户明确要删掉后,大家最先要获得客户所启用的产品的id,将这种id拼凑成一字符串,随后向后台管理推送ajax恳求,$.post中的第一个主要参数是推送到哪个action,第二个主要参数是推送的主要参数,第三个主要参数是回调函数涵数,即删掉取得成功后实行该涵数里边的方式,该涵数的主要参数result是以后台管理传回来的,第四个主要参数会有可无,是回到数据信息的种类。大家关键看一下$.post中的內容,当后台管理回到一个 true 表明删掉取得成功了,那麼大家启用DataGrid里边的reload方式再次更新网页页面,reload和前边查寻时要的load是一样的,不一样的地区取决于reload更新后滞留在当今网页页面,而load则显示信息第一页。

好啦,前台接待网页页面一部分写好啦,接下去进行后台管理的相对方式,最先在categoryService中加上deleteByIds方式,并在实际上现类categoryServceImpl中完成该方式:

Java编码 //categoryService插口  public interface CategoryService extends BaseService Category  {   //查寻类型信息内容,联级管理方法员   public List Category &ount(String type, int page, int size); //应用类型的名字查寻   //依据重要字查寻总纪录数   public Long getCount(String type);   //依据ids删掉好几条纪录   public void deleteByIds(String ids);  }    //categoryServiceImpl完成类  @SuppressWarnings( unchecked )  @Service( categoryService )  public class CategoryServiceImpl extends BaseServiceImpl Category  implements CategoryService {     //别的方式省去不写了 能够参考前边的相对章节目录內容     @Override   public void deleteByIds(String ids) {   String hql =  delete from Category c where c.id in (  + ids +  ) ;   getSession().createQuery(hql).executeUpdate();   }  } 

写好啦Service一部分,接下去刚开始写Action一部分了。由于大家要获得前台接待传进去的ids数据信息,因此在action中得有一个完成了get和set方式的自变量来接受这一数据信息,此外,大家要将結果发送给前台接待,前边章节目录中大家做联级查寻的情况下,应用的方式是struts把查寻的結果数据信息装包成json文件格式发送给前台接待,因此必须一个Map,随后将根据配备文档中的配备,将Map变换成json文件格式。这儿大家传入前台接待的数据信息较为简易,入股投资删掉取得成功大家传一个 true 就可以,因此无需装包成json文件格式,大家根据流的方式去传输,大道理和前边的一样,总统大家得有一个流的目标去储存这一 true 的字节数,随后根据配备,将这一目标根据广为流传到前台接待。这2个目标大家還是写在BaseAction中,以下:

Java编码 @Controller( baseAction )  @Scope( prototype )  public class BaseAction T  extends ActionSupport implements RequestAware,SessionAware,ApplicationAware,ModelDriven T  {     //获得要删掉的ids,要有get和set方式   //流是用于想前台接待回到数据信息的,这一数据信息是让struts获得的,随后根据流的方式传入前台接待,因此完成get方式就可以   protected String ids;   protected InputStream inputStream;     //下边省去   } 

相匹配的CategoryAction中的方式以下:

Java编码 @Controller( categoryAction )  @Scope( prototype )  public class CategoryAction extends BaseAction Category  {     public String&ount() {   //略    }     public String deleteByIds() {   System.out.println(ids);   categoryService.deleteByIds(ids);   //假如删掉取得成功便会向下实行,大家将 true 以流的方式发送给前台接待   inputStream = new ByteArrayInputStream( true .getBytes()); //将 true 的字节数存到流inputStream中   return  stream ;   }  } 

接下去看struts.xml中相对的配备:

XML/HTML编码 struts       constant name= struts.devMode  value= true  /       package name= shop  extends= json-default !-- jason-default承继了struts-default --       global-results     result name= aindex /WEB-INF/ /result     /global-results       !-- class相匹配的是Spring中配备该Action的id值,由于要交到Spring管理方法 --     action name= category_*   > 那样大家就搞好了删掉的实际操作了,看一下实际效果:

SSH电商项目实战之八:查询和删除商品类别功能的实现

SSH电商项目实战之八:查询和删除商品类别功能的实现

检测取得成功,大家还可以一次性挑选多种去删掉,到此,删掉作用做了了。

SSH电子商务新项目实战演练之七:Struts2和Json的融合 (:47)

SSH电子商务新项目实战演练之六:根据DataGrid的数据信息显示信息 (:19)

SSH电子商务新项目实战演练之五:进行数据信息库的联级查寻和分页查询 (:38)

SSH电子商务新项目实战演练之四:EasyUI莱单的完成 (:59)

SSH电子商务新项目实战演练之三:应用EasyUI构建后台管理网页页面架构 (:9)

SSH电子商务新项目实战演练之二:基本删改查改、Service和Action的提取及其应用注释更换xml (:14)

SSH电子商务新项目实战演练之一:融合Struts2、Hibernate和Spring (:3)

Hibernate下openSession和getCurrentSession获得的联接与事务管理的关联 (:56)

深层次浅出SINGLETON单例设计方案方式 (:50)

怎样处理Chrome中网页页面的运行内存泄漏难题 (:15)


网页链接(选填)

认证(*)

文章正文(*)(留言板留言最多篇幅:1000)

记牢我,下一次回应时无需再次键入本人信息内容



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:怎么开发小程序