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
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。