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

本功能是基于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 οnclick="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删除对应的数据,在实际使用中可根据个人需要来调用相应的删除方法。


实现效果如下:

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值