lucas1018 2017-03-15 07:29 采纳率: 100%
浏览 4214
已采纳

在springmvc和mybatis框架下根据id批量删除

jsp页面代码:

 <input type="checkbox" id="subcheck" name="subcheck" class="checkboxes" value="${teacher.id}" />

js代码:

 function batchDeletes(){
        var checkedNum = $("input[name = 'subcheck']:checked").length;
        if(checkedNum == 0) {
            alert("请至少选中一项!");
            return false;
        }
        if(confirm("确定删除所选项目?")){
            var checkedList = new Array();
            $("input[name = 'subcheck']:checked").each(function (){
                checkedList.push($(this).val());
            });
            $.ajax({
                type: "POST",
                url: "rest/teacher/batchDeletes.action",
                data: {"ids": checkedList.toString()},
                datatype: "html",
                success: function (data) {
                    $("[name=‘checkbox‘]:checkbox").attr("checked", false);
                    art.dialog.tips('删除成功!');
                    setTimeout("location.reload()", 1000);//页面刷新
                },
                error:function(data){
                    art.dialog.tips('删除失败!');
                }
            });
        }
    }

controller代码:

 @RequestMapping("/batchDeletes")
    public void batchDeletes(HttpServletRequest request){
        System.out.println(1);
        String items = request.getParameter("ids");
        List<String> delList = new ArrayList<String>();
        String[] strs = items.split(",");
        System.out.println(2);
        for (String str : strs) {
            delList.add(str);
        }
        basicTeacherService.batchDeletes(delList);
    }

mapper.xml页面代码:

 <delete id="batchDeletes" parameterType="java.lang.Long">
    delete from basic_teacher where id in
    <foreach collection="list" index="index" item="id" open="(" separator="," close=")">
      #{id}
    </foreach>
  </delete>

麻烦各路大神给看看到底是哪里出了问题哈,谢谢

  • 写回答

3条回答 默认 最新

  • 「已注销」 2017-03-15 07:41
    关注

    大概看了一下,个人认为应该是传值的问题,你在javascript中传递的内容是一个Array,并不是一个字符串,对人那你最后使用toString转换了,但是在你的controller中使用,为分割标准来分割,因此我建议你在javascript中这样写:

                            var checked = "";
                $("input[name = 'subcheck']:checked").each(function (){
                    checked += $(this).val() + ",";
                });
                $.ajax({
                    type: "POST",
                    url: "rest/teacher/batchDeletes.action",
                    data: {"ids": checked},
                    datatype: "html",
                    success: function (data) {
                        $("[name=‘checkbox‘]:checkbox").attr("checked", false);
                        art.dialog.tips('删除成功!');
                        setTimeout("location.reload()", 1000);//页面刷新
                    },
                    error:function(data){
                        art.dialog.tips('删除失败!');
                    }
                });
    

    这个方法在controller中可能还会有一个问题,那么就是最后一个,后面没有内容了,因此分割之后,最后一个元素无效

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码
  • ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串
  • ¥85 cmd批处理参数如果含有双引号,该如何传入?
  • ¥15 fx2n系列plc的自控成型机模拟
  • ¥15 时间序列LSTM模型归回预测代码问题
  • ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统