【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
原创粉丝点击