CRUD功能增强(删除选中)

删除选中

思路:
1. 获取选中条目的id
2. 将id提交到delSelectedServlet
3. 在delSelectedServlet获取id数组
4. 调用service层的删除方法(遍历id数组调用dao中的单个删除方法)完成删除
5. 跳转到userlistservlet进行显示(el+jstl)

核心代码:
*servlet

@WebServlet("/delSelectesUserServlet")
public class DelSelectesUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置request的编码
        request.setCharacterEncoding("utf-8");
        //获取uid
        String[] uids = request.getParameterValues("uid");

        //调用service
        UserService service = new UserServiceImpl();
        service.delSelectedUser(uids);

        //重定向到列表页
        response.sendRedirect(request.getContextPath()+"/findUserByPageServlet");
    }

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


* UserServiceImpl

    @Override
    public void delSelectedUser(String[] uids) {
        for (String uid : uids) {
            dao.delUser(Integer.parseInt(uid));
        }
    }

* UserDaoImpl

    @Override
    public void delUser(int id) {
        //定义sql语句
        String sql = "delete from user where id = ?";
        int count = template.update(sql, id);
        if (count > 0){
            System.out.println("删除成功!!");
        }
    }

* list.jsp(核心代码)

<script>
       // 优化用户点击体验,避免点击直接删除
    function delSelected() {
        if (confirm("确定要删除选中的条目吗?")) {
            var uids = document.getElementsByName("uid");
            var flag = false;
            for (var i = 0; i < uids.length; i++) {
                if (uids[i].checked) {
                    flag = true;
                    break;
                }
            }
            if (flag) {
                document.getElementById("form").submit();

            }else {
                alert("没有选中任何条目。")
            }
        }
    }

    window.onload = function () {
    // 设置点击事件,全选。。。
        document.getElementById("firstCb").onclick = function () {
            var uids = document.getElementsByName("uid");
            for (var i = 0; i < uids.length; i++) {
                uids[i].checked = this.checked;
            }
        }
    }

<a class="btn btn-primary" href="javascript:delSelected()">删除所选</a>
//第一个checkbox
<th><label for="firstCb">全选</label><input type="checkbox" id="firstCb"></th>
//c:foreach中的checkbox
<td><input type="checkbox" id="uid" name="uid" value="${user.id}"></td>

猜你喜欢

转载自blog.csdn.net/qq_35472880/article/details/82803900