頁面效果 勾選一個或多個用戶,或點擊全選框,然後單擊【批量刪除】,彈出確認視窗。確定則刪除,取消則不刪除: 實現步驟 1.JSP頁面的js函數 1.1添加按鈕【批量刪除】單擊事件觸發的js函數,有兩種實現方式: 1.1 DOM對象實現 1.2 jQuery對象實現 function deleteAl ...
頁面效果
勾選一個或多個用戶,或點擊全選框,然後單擊【批量刪除】,彈出確認視窗。確定則刪除,取消則不刪除:
實現步驟
1.JSP頁面的js函數
1.1添加按鈕【批量刪除】單擊事件觸發的js函數,有兩種實現方式:
1.1 DOM對象實現
DOM對象實現批量刪除js1.2 jQuery對象實現
function deleteAll(){ var $selectuser = $("input[type=checkbox][name=userID]"); var flag = false; $selectuser.each(function(){ if(this.checked){ flag=true; return false;//退出迴圈 } }) if(!flag){ alert("沒有選擇執行操作的用戶!不能執行該操作"); return false; } else{ var confirmflag = window.confirm("你確定執行批量刪除嗎?"); if(!confirmflag){ return false; } else{ $("#Form2").attr("action","elecUserAction_delete.do"); $("#Form2").submit(); return true; } } }jQuery實現批量刪除的js代碼
1.2添加全選框單擊事件觸發的js函數,也有兩種實現方式
2.1 DOM對象實現
//用戶:全部選中/全部不選中 function checkAllUser(user){ var selectuser = document.getElementsByName("userID"); for(var i=0;i<selectuser.length;i++){ selectuser[i].checked = user.checked; } }全選/全不選js
2.2 jQuery對象實現
//用戶:全部選中/全部不選中 function checkAllUser(user){ $("input[type=checkbox][name=userID]").attr("checked",user.checked); }jQuery實現全選/全不選
2.Action類中添加刪除方法
/** * @Name: delete * @Description: 刪除用戶信息 * @Parameters: 無 * @Return: String 重定向到system/userIndex.jsp */ public String delete(){ elecUserService.deleteUserByID(elecUser); return "delete"; }
3.struts.xml中添加
<result name="delete" type="redirectAction"> <param name="actionName">elecUserAction_home.do</param> </result>
即刪除後,重定向到用戶管理首頁面,相當於刷新了一下。
4.在Service實現類中添加業務方法
/** * @Name: deleteUserByID * @Description: 刪除用戶信息 * @Parameters: ElecUser VO對象 * @Return: 無 */ @Override @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false) public void deleteUserByID(ElecUser elecUser) { //獲取獲取ID,String userID,如果是多個值,struts2預設採用", "的形式 String userID = elecUser.getUserID(); String[] userIDs = userID.split(", "); if(userIDs!=null&&userIDs.length>0){ //獲取每個用戶ID for(String uid:userIDs){ //使用ID查詢用戶對象,獲取該用戶對應的附件 ElecUser user = elecUserDao.findObjectByID(uid); Set<ElecUserFile> userFiles = user.getElecUserFiles(); //遍歷用戶附件 if(userFiles!=null&&userFiles.size()>0){ for(ElecUserFile userFile:userFiles){ //獲取路徑 String path=ServletActionContext.getServletContext().getRealPath("")+userFile.getFileURL(); File file = new File(path); if(file.exists()){ //如果路徑存在,刪除該用戶對應的文件 file.delete(); } } } } } //根據用戶id刪除用戶信息(同時級聯刪除附件表) elecUserDao.deleteObjectByIDs(userIDs); }定義刪除方法
因為用戶與附件是一對多的關係,可採用級聯操作,刪除用戶同時也刪除附件表,這樣比較簡便。
5.hbm.xml文件中定義級聯
<set name="elecUserFiles" table="Elec_User_File" inverse="true" order-by="progressTime desc" cascade="delete"> .... </set>
這裡 order-by=progressTime desc 附件按創建時間遞減順序展示
cascsde=detele 級聯刪除