【JAVA技术库】删除列表选中的多个数据
来源:互联网 发布:最新网络手游排行榜 编辑:程序博客网 时间:2024/06/06 08:32
设置全选的操作
<table class="table table-bordered"> <tr> <th><input type="checkbox" id="selAll" onclick="checkboxSelect(this,'UserNum')"></th> <th>学生学号</th> <th>学生姓名</th> <th>当前状态</th> <th>最后一次登录时间</th> <th>操作</th> </tr> <%--查询查询结果--%> <c:forEach items="${listByStudent}" var="student"> <%--对数据进行依次循环输出 -- student(studentID, sStatus,managerID, studentName, studentPassword, sIdentity, sLastTime)--%> <tr> <%--<td>${item.itemID}</td>--%> <%--<td>${item.itemName}</td>--%> <%--<td>${item.itemNote}</td>--%> <td><input type="checkbox" id="selall" name="UserNum" id="UserNum"></td> <td>${student.studentID}</td> <td>${student.studentName}</td> <td> <c:if test="${student.sStatus == 1}"> 在线 </c:if> <c:if test="${student.sStatus == 2}"> 不在线 </c:if> </td> <td>${student.sLastTime}</td> <td> <a href="/jsp/cdsp_information/manager/UserInfo.jsp?UserID=${student.studentID}&UserName=${student.studentName}" class="btn btn-success" data-toggle="modal" data-target="#UserInfo"><i class="fa fa-search"></i> 查看</a> <a class="btn btn-info" href="/jsp/cdsp_information/manager/cdsp_reStudentPasswordform.jsp?studentID=${student.studentID}" data-toggle="modal" data-target="#rePasswordModel"><i class="fa fa-edit"></i> 修改密码</a> <a href="/jsp/cdsp_information/manager/MDelUser.jsp?MuserID=${student.studentID}" id="MDelUser" class="btn btn-danger" onclick="return delUser()"><i class="fa fa-trash-o"></i> 删除</a> </td> </tr> </c:forEach> </table>
<script type="text/javascript">// 全选操作// function checkboxSelect(元素名字){ function checkboxSelect(obj,elename){ var item = document.all(elename); console.log(item.length == undefined);//打印 if(item.length == undefined){//表示只有一个元素,不是数组 document.getElementById(elename).checked = this.checked;//当前触发属性 }else{ for (var x = 0 ; x < item.length ; x++){ item[x].checked = obj.checked; } } }</script>
关键代码:
<th><input type="checkbox" id="selAll" onclick="checkboxSelect(this,'UserNum')"></th>
<td><input type="checkbox" name="UserNum" id="UserNum"></td>
删除选中的数据
结构
<script type="text/javascript">// 删除选中的学生用户操作// function DelSelectUser(要删除的操作路径,要删除的传递过来的参数名称,取得数据的ID名称){ function DelSelectUser(url,paramName,eleNmae){ }</script>
实现未选中时提出对话框
<script type="text/javascript">// 删除选中的学生用户操作// function DelSelectUser(要删除的操作路径,后端提交的参数名称要删除的传递过来的参数名称,元素名称取得数据的ID名称){ function DelSelectUser(url,paramName,eleName){ var data = "";//保存所有要删除的数据编号 //但是数据有可能是数组,也有可能只有一个 var item = document.all(eleName); var count = 0;//保存要删除的数据个数 //判断是否有要删除的数据 if(item.length == undefined){//表示只有一个元素,不是数组 if (document.getElementById(eleName).checked == true){ //表示有数据选中,可以删除 count ++; } }else{ for(var x = 0 ; x < item.length ; x++ ){ if(item[x].checked == true){ //被选中 count++; } } } if (count > 0){ //有要删除的数据 }else{ //没有要删除的数据,并进行提示 alert("你还未选择要删除的数据!!"); } }</script>
取出选中数据,传递
<td><input type="checkbox" name="UserNum" id="UserNum" value="${student.studentID}"></td><td colspan="5"><input onclick="DelSelectUser('DelAllUser.action','UserAllNum','UserNum')" type="button" class="btn btn-danger" value="批量删除选中学生信息"></td><script type="text/javascript">// 删除选中的学生用户操作// function DelSelectUser(要删除的操作路径,后端提交的参数名称要删除的传递过来的参数名称,元素名称取得数据的ID名称){ function DelSelectUser(url,paramName,eleName){ var data = "";//保存所有要删除的数据编号 //但是数据有可能是数组,也有可能只有一个 var item = document.all(eleName); var count = 0;//保存要删除的数据个数 //判断是否有要删除的数据 if(item.length == undefined){//表示只有一个元素,不是数组 if (document.getElementById(eleName).checked == true){ //表示有数据选中,可以删除 data += document.getElementById(eleName).value;//取出数据 count ++; } }else{ for(var x = 0 ; x < item.length ; x++ ){ if(item[x].checked == true){ //被选中 count++; data += item[x].value+"|"; } } } if (count > 0){ //有要删除的数据 alert(data); }else{ //没有要删除的数据,并进行提示 alert("你还未选择要删除的数据!!"); } }</script>
<script type="text/javascript">// 删除选中的学生用户操作// function DelSelectUser(要删除的操作路径,后端提交的参数名称要删除的传递过来的参数名称,元素名称取得数据的ID名称){ function DelSelectUser(url,paramName,eleName){ var data = "";//保存所有要删除的数据编号 //但是数据有可能是数组,也有可能只有一个 var item = document.all(eleName); var count = 0;//保存要删除的数据个数 //判断是否有要删除的数据 if(item.length == undefined){//表示只有一个元素,不是数组 if (document.getElementById(eleName).checked == true){ //表示有数据选中,可以删除 data += document.getElementById(eleName).value;//取出数据 count ++; } }else{ for(var x = 0 ; x < item.length ; x++ ){ if(item[x].checked == true){ //被选中 count++; data += item[x].value+"|"; } } } if (count > 0){ //有要删除的数据// alert(data); console.log(data); //进行提示是否要删除选中的数据! if(window.confirm("你正在进行删除操作!请确定要删除选中的数据吗?")){ //再次提示是否删除 if(window.confirm("请再一次确认是否要删除选中的数据?")){ //确定要删除,进行跳转 console.log(url + "?" + paramName + "=" + data);// window.location = url + "?" + paramName + "=" + data; }else{ return false; } }else{ return false; } }else{ //没有要删除的数据,并进行提示 alert("你还未选择要删除的数据!!"); } }</script>
此时可能会报异常,
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:189) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
最终解决方法:data 如果出现特殊字符 如: 04140725|04140735| 就会报错!此时,我们将window.location = url + "?" + paramName + "=" + data;改为:window.location = url + "?" + paramName + "=" + encodeURIComponent(data);
完整代码:
<script type="text/javascript">// 删除选中的学生用户操作// function DelSelectUser(要删除的操作路径,后端提交的参数名称要删除的传递过来的参数名称,元素名称取得数据的ID名称){ function DelSelectUser(url,paramName,eleName){ var data = "";//保存所有要删除的数据编号 //但是数据有可能是数组,也有可能只有一个 var item = document.all(eleName); var count = 0;//保存要删除的数据个数 //判断是否有要删除的数据 if(item.length == undefined){//表示只有一个元素,不是数组 if (document.getElementById(eleName).checked == true){ //表示有数据选中,可以删除 data += document.getElementById(eleName).value;//取出数据 count ++; } }else{ for(var x = 0 ; x < item.length ; x++ ){ if(item[x].checked == true){ //被选中 count++; data += item[x].value+"|"; } } } if (count > 0){ //有要删除的数据// alert(data); console.log(data); //进行提示是否要删除选中的数据! if(window.confirm("你正在进行删除操作!请确定要删除选中的数据吗?")){ //再次提示是否删除 if(window.confirm("请再一次确认是否要删除选中的数据?")){ //确定要删除,进行跳转 console.log(url + "?" + paramName + "=" + data); window.location = url + "?" + paramName + "=" + encodeURIComponent(data); }else{ return false; } }else{ return false; } }else{ //没有要删除的数据,并进行提示 alert("你还未选择要删除的数据!!"); } }</script><td colspan="5"><input onclick="DelSelectUser('<%=basePath%>jsp/cdsp_information/manager/MDelSelectUser.jsp','UserAllNum','UserNum')" type="button" class="btn btn-danger" value="批量删除选中学生信息"></td>MDelSelectUser.jsp页面代码<%@ page import="java.util.Set" %><%@ page import="java.util.HashSet" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <meta http-equiv="Content-Type" content="text/html; charset='utf-8'" /> <base href="<%=basePath%>"> <title>后台管理员执行删除用户页面</title></head><body><% String UserAllNum = request.getParameter("UserAllNum");//接收批量删除用户的对应ID,数据之间使用"|"分隔 System.out.println(UserAllNum); if (UserAllNum != null && !UserAllNum.equals("")) {//UserAllNum确定有数据 //对数据进行拆分 String[] result = UserAllNum.split("\\|");//按"|"拆 \\| = | 转义 //拆完数据后,将其放到Set集合中 Set<String> UserAllID = new HashSet<String>(); for (int x = 0; x < result.length ; x++){ UserAllID.add(result[x]); } session.setAttribute("UserAllNum",UserAllID); }%><script type="text/javascript"> window.location = "MDelSelectUser.action" ;</script></body></html>Action的代码package com.jluzh.action;import com.jluzh.service.factory.ServiceFactory;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;/** * Created by jluzh on 2017/4/15. */public class MDelUserAction extends ActionSupport { private static final String TAG = "MDelUserAction"; private static final String MDELUSER = "mdeluser";// 执行跳转信息 private String MuserID;// 用户的ID账号 @Override public String execute() throws Exception { System.out.println(TAG+":执行execute方法"); String msg = "";//表示提示信息 String url = "";//表示跳转路径 // 1、使用ServletActionContext获取request对象。 HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); //2. 取得路径后的字符串 * String status = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1); System.out.println("取得路径后的字符串:"+status); switch (status){ case "MDelUser.action": System.out.println(TAG+":执行删除学生用户的操作"); MuserID = (String) session.getAttribute("MuserID");//取得要删除的学生的账号学号ID System.out.println(TAG+":MuserID:"+MuserID); if (MuserID != null && !MuserID.equals("")){// 如果传过来的学生的账号ID不为空的话,执行删除的该学生的操作 if (ServiceFactory.getIStudentServiceInstance().DelStudentByStudentID(MuserID)){ System.out.println(TAG+":删除学生成功!"); request.setAttribute("msg",MuserID+"用户成功删除!"); System.out.println(TAG+":执行清空用户session信息···"); session.removeAttribute("MuserID"); session.removeAttribute("listByStudent");//每次再次查询,删除上一次的查询结果 System.out.println(TAG+":已清空用户session信息"); request.setAttribute("url","/jsp/cdsp_information/manager/cdsp_studentManager.jsp"); return MDELUSER; }else { System.out.println(TAG+":删除学生失败!"); request.setAttribute("msg",MuserID+"用户删除失败!"); System.out.println(TAG+":执行清空用户session信息···"); session.removeAttribute("MuserID"); session.removeAttribute("listByStudent");//每次再次查询,删除上一次的查询结果 System.out.println(TAG+":已清空用户session信息"); request.setAttribute("url","/jsp/cdsp_information/manager/cdsp_studentManager.jsp"); return MDELUSER; } }else{ System.out.println("找不到要删除的用户ID"); request.setAttribute("msg",MuserID+"找不到要删除的用户ID!"); request.setAttribute("url","/jsp/cdsp_information/manager/cdsp_studentManager.jsp"); return MDELUSER; } default: System.out.println(TAG+":路径字符串有问题!!"); request.setAttribute("msg","路径字符串有问题!"); request.setAttribute("url","/jsp/cdsp_information/manager/cdsp_studentManager.jsp"); return MDELUSER; } }}
0 0
- 【JAVA技术库】删除列表选中的多个数据
- Gridview中同时选中并删除多个数据
- 删除选中的checkbox数据
- CListCtrl控件删除多个选中行时问题的解决
- 列表数据多行删除
- PB如何获取列表框中同时选中的多个项目
- dataTable 批量选中 当前页的所有列表数据
- listview中删除多个选中行的两种方法
- 从列表中删除多个项目
- Java list删除指定多个下标数据
- Java list删除指定多个下标数据
- C# 用ListView控件多个选中并进行删除
- 选中一行数据做删除
- 多个checkbox的选中与未选中js代码
- 机房收费系统遇到的问题(一) datagridview一次性移除多行选中数据,同时删除数据库数据
- 选择多个数据进行删除的 javaScript
- Java实现列表的创建,插入,删除
- Javascript根据选中的数据颜色,全文档搜索选中的数据节点(可条件选择单个或多个)
- Windows dos命令简介
- JVM垃圾收集器总结
- 使用Android Studio阅读整个Android源码
- 远程访问jupyter notebook
- 协程
- 【JAVA技术库】删除列表选中的多个数据
- java中常用的String方法
- java环境配置(win10)
- HDU 2087 剪花布条(KMP算法)
- 计算两个经纬度点之间的距离[java]
- 2017年团体程序设计天梯赛-总决赛 L2-2. 重排链表
- Android开发艺术探索读书笔记——进程间通信
- Linux中sudo命令介绍
- Java浮点数的趣事