美文网首页
java.多选框批量删除功能(springmvc+mybatis

java.多选框批量删除功能(springmvc+mybatis

作者: InitialX | 来源:发表于2018-08-02 13:05 被阅读308次

`搬运自:https://blog.csdn.net/happyboy214117/article/details/47753489
感谢原作者

此项目基于的框架是:springmvc+mybatis

(1)controller

/**
     * 批量删除 batch
     */
    @RequestMapping("/batchDeletes")
    @ResponseBody
    public void batchDeletes(HttpServletRequest request,HttpServletResponse response){
        String items = request.getParameter("delitems");
        List<String> delList = new ArrayList<String>();
        String[] strs = items.split(",");
        for (String str : strs) {
            delList.add(str);
        }
        userService.batchDeletes(delList);
    }

代码思路:

从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。

(2)service

/**
    * 批量删除
    */
   void batchDeletes(List delList);

(3)impl

/**
     * 批量删除
     */
    @Override
    public void batchDeletes(List delList) {
        userMapper.batchDeletes(delList);
    }

(4)mapper

   /**
     * 批量删除
     */
    void batchDeletes(List delList);

(5)mapper.xml

<!--批量删除 -->
    <delete id="batchDeletes" parameterType="java.util.List">
            DELETE FROM tp_user where uname in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">   
            #{item}   
         </foreach>
    </delete>

如上的mybatis指代的意思如下:

foreach元素的属性主要有 item,index,collection,open,separator,close。

item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)

index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.

open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.

close表示以什么结束.

前台代码:

user_list.jsp

<table class="tb_list">
                <tr>
                    <td align="center"><input type="checkbox" id="SelectAll"
                                onclick="selectAll();" /> 全选</td>
                    <th>序号</th>

                </tr>
                <c:forEach items="${page.list }" var="items" varStatus="idx">
                    <tr class="row_${idx.count%2+1}">
                        <td style="display:none">${batch.id}</td>
                        <td align="center"><input type="checkbox" id="subcheck"
                                    name="subcheck" value="${items.UNAME }" />
                        </td>
                        <td>${page.onePageCount*(page.currentPage-1)+idx.count }</td>
                     <tr>  
            </table>
<button class="btn btn-primary btn-md" type="button" 
id="deleteButton">删除</button>
       //全选
        function selectAll(){
            if ($("#SelectAll").is(":checked")) {
                $(":checkbox").prop("checked", true);//所有选择框都选中
            } else {
                $(":checkbox").prop("checked", false);
            }
        }

        //批量删除
       $("#deleteButton").on("click", function() {
        //判断至少写了一项
        var checkedNum = $("input[name='check']:checked").length;
        if (checkedNum == 0) {
            layer.alert("请至少选择一项!");
            return false;
        }
        var checkedList = new Array();
        $("input[name='check']:checked").each(function() {
            checkedList.push($(this).val());
        });
        layer.confirm('确定删除所选项目?', {
            title : '提示'
        }, function(index) {

            $("body").mLoading('show'); //加遮罩

            $.ajax({
                type : "POST",
                url : '${ctx}/manage/banner/delete',
                data : {
                    "delitems" : checkedList.toString()
                },
                datatype : "html",
                success : function(data) {
                    $(":checkbox").attr("checked", false);
                    layer.close();
                    window.location.reload();
                },
                error : function(data) {
                    art.dialog.tips('删除失败!');
                }
            });

        });
    })

引入的js

<script src="${ctx}/static/js/jquery.min.js?v=2.1.4"></script>
<script src="${ctx}/static/js/bootstrap.min.js?v=3.3.6"></script>
<script src="${ctx}/static/js/plugins/layer/layer.min.js"></script>
<script src="${ctx}/static/js/plugins/mloading/jquery.mloading.js"></script>

备注:此代码我传值的主键是用uname来删除的,实际应该用id作为主键,因为id的[unique],uname若重名,则就会出现bug,相信大家都明白,就不再过多解释了。欢迎大家一起讨论。

相关文章

网友评论

      本文标题:java.多选框批量删除功能(springmvc+mybatis

      本文链接:https://www.haomeiwen.com/subject/hobjvftx.html