JAVAWeb列表数据批量删除思路及实现

个人博客地址https://nfreak-man.cn
带复选框 checkbox 的列表要实现批量删除的功能,首先要获取被选中的信息的全部 id,可以把该列表放入一个 form 表单中,以获取表单信息的方式获取全部 id,然后遍历 id,循环删除所有信息。
列表形式:
在这里插入图片描述

获取列表选中信息 id

把 table 放入 form表单,并把复选框 checkbox 的 value 值设置为 id:

<form id="form1" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
<table border="1" class="table table-bordered table-hover">
    <tr class="success">
        <th><input type="checkbox" id="firstCb"></th>
        <th>编号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th>
        <th>籍贯</th>
        <th>QQ</th>
        <th>邮箱</th>
        <th>操作</th>
    </tr>
    <c:forEach items="${users}" var="user" varStatus="s">
        <tr>
            <th><input type="checkbox" name="uid" value="${user.id}"></th>
            <td>${s.count}</td>
            <td>${user.name}</td>
            <td>${user.gender}</td>
            <td>${user.age}</td>
            <td>${user.address}</td>
            <td>${user.qq}</td>
            <td>${user.email}</td>
            <td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>&nbsp;
                <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id});">删除</a></td>
        </tr>
    </c:forEach>
</table>
</form>

点击删除按钮提交表单,获取 id

按钮:

<a class="btn btn-primary" href="javascript:void(0);" id="delSelected" >删除选中</a>

js代码:

	window.onload = function(){
            document.getElementById("delSelected").onclick = function(){
                if(confirm("您确定要删除选中信息吗?")){
                    var flag = false;
                    //判断是否有选中条目
                    var cbs = document.getElementsByName("uid");
                    for (var i = 0; i < cbs.length; i++) {
                        if(cbs[i].checked){
                            flag = true;
                            break;
                        }
                    }
                    if(flag){
                        document.getElementById("form1").submit();
                    }
                }
            }

            //获取第一个checkbox
            document.getElementById("firstCb").onclick = function(){
                //获取下摆你列表中所有cd
                var cbs = document.getElementsByName("uid");
                //遍历
                for (var i = 0; i < cbs.length; i++) {
                    //设置cbs[]的check状态 = firstCb.checked
                    cbs[i].checked = this.checked;
                }
            }
        }

DelSelectedServlet

@WebServlet("/delSelectedServlet")
public class DelSelectedServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取所有id
        String[] ids = request.getParameterValues("uid");
        //调用service删除
        UserSvice service = new UserServiceImpl();
        service.delSelectedUser(ids);
        //跳转查询所有servlet
        response.sendRedirect(request.getContextPath()+"/userListServlet");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

Service 方法

@Override
public void delSelectedUser(String[] ids) {
    //遍历数组
    for (String id : ids) {
        //调用dao删除
        dao.delete(Integer.parseInt(id));
    }
}

dao方法

@Override
public void delete(int id) {
    //定义sql
    String sql = "delete from user where id = ?";
    //执行sql
    template.update(sql,id);
}
l
    String sql = "delete from user where id = ?";
    //执行sql
    template.update(sql,id);
}
发布了28 篇原创文章 · 获赞 0 · 访问量 722

猜你喜欢

转载自blog.csdn.net/William_GJIN/article/details/104974936