SSH框架網上商城項目第11戰之查詢和刪除商品功效完成。本站提示廣大學習愛好者:(SSH框架網上商城項目第11戰之查詢和刪除商品功效完成)文章只能為提供參考,不一定能成為您想要的結果。以下是SSH框架網上商城項目第11戰之查詢和刪除商品功效完成正文
在第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"就經由過程傳播到前台了,吸收到解釋刪除勝利。看一下後果:
測試勝利,至此,商品的搜刮和刪除功效做完了。
本文地址:http://blog.csdn.net/eson_15/article/details/51360804
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。