【java web】springMVC框架实现用多选框批量删除表数据功能

来源:互联网 发布:oneinstack java 编辑:程序博客网 时间:2024/06/14 23:31
本功能是基于springMVC+mybatis框架实现的,实现过程如下:

jsp代码:

<c:forEach items="${requestScope.movies}" var="movie" varStatus="status"><tr><td><input type="checkbox" id="subcheck"                                    name="subcheck" value="${movie.id}" /></td><td>${status.count }</td><td>${movie.id}</td><td>${movie.name  }</td><td>${movie.classify}</td><td>${movie.price}</td><td>${movie.bid}</td><td>${movie.num}</td><td>${movie.num_sale}</td><td>${movie.score}</td><td>${movie.note}</td><td>${movie.time}</td><td><a href="movie/${movie.id}">修改</a></td></tr></c:forEach>

代码解释:在EL表达式的循环体中添加<input type="checkbox" id="subcheck" name="subcheck" value="${movie.id}" />,该行代码表示为为每条数据增加一个多选框,其中value属性可根据实际情况改动,但一定要是数据库中主键值,如果不是会出现bug


添加一个删除按钮,onclick属性为batchDeletes():

<button onclick="batchDeletes()">删除</button>

js代码:

<script type="text/javascript"> 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:"del",                    data:{"delitems":checkedList.toString()},                    datatype:"html",                    success:function(data){                        $("[name='checkbox2']:checkbox").attr("checked",false);                        location.reload();//页面刷新                    },                    error:function(data){                        art.dialog.tips('删除失败!');                    }                });                }        }</script>
代码解释:当点击删除按钮后执行该方法,该段代码表示将已选的多选框通过ajax发送给后台,本例中url设为del,在实际代码编写中可以改变,但需和后台地址一致


后台Controller代码:

@RequestMapping("/del")public void batchDeletes(HttpServletRequest request, HttpServletResponse response) {String items = request.getParameter("delitems");// System.out.println(items);String[] strs = items.split(",");for (int i = 0; i < strs.length; i++) {try {int a = Integer.parseInt(strs[i]);persistService.delStudentById(a);} catch (Exception e) {}}}
从前台勾选的选择框中传过来的值用“,”分开并存入strs数组,将strs数组中的字符强制转换为int类型(主键需要,主键不为int类型可以跳过此步),然后通过调用.delStudentById()函数删除数据库中所有以该数组作为元素的数据,其中delStudentById()函数是在service层定义的,作用是通过数据的Id删除对应的数据,在实际使用中可根据个人需要来调用相应的删除方法。


实现效果如下:

原创粉丝点击