基于Spring MVC + Mybatis实现多选框批量删除

此项目基于的框架是:springmvc+mybatis,步骤如下:

A.前台代码:

<th id="ckBox" style="text-align:center;width: 3%;"  data-bind="visible: deleteqx == '1'"> 
<input type="checkbox" id="ckAll" onclick="CKAlls()" />
</th>


<td style="text-align:center;" data-bind="visible: deleteqx == '1'">
<div>
<input type="checkbox" name="subcheck" id="subcheck" data-bind="value: id" onclick="CKAllsOne()" />
</div>
</td>

备注:因为前台页面用的框架都会有所不同,所以我就直接Copy了两段代码,前台只需要实现将你的删除主键传到js就可以。


B.Js代码:

片段1:


/**
* 批量删除
*/
self.ckdelete = function(item){
url="radar/ckDeletes";//后台url
if(ckdeletes(url)){
$("#ckAll").attr('checked',false);
self.selectRadar();//删除之后刷新
}
}

片段2:


//批量删除
function ckdeletes(url){
var exist = false;
var ckNum = $("input[name='subcheck']:checked").length;
if(ckNum == 0){
alert("请至少选择一项!");
return exist;
}
if(confirm("确定删除所选项目?")){
var checkedList = new Array();
$("input[name='subcheck']:checked").each(function(){
    checkedList.push($(this).val());
   });
   $.ajax({
       type:"POST",
       url:"../../mvc/"+url,
       data:{"delitems":checkedList.toString()},
       datatype:"html",
       async:false,
       success:function(data){
       exist = true;
        alert("删除成功!");
       
       },
       error:function(data){
           alert("删除失败!");
           return exist;
       }
   });
}
return exist;
}
 

/**
* 复选框全选或全不选
*/
function CKAlls(){
if ($("#ckAll").is(":checked")) {
      $(":checkbox").prop("checked", true);//所有选择框都选中
  } else {
      $(":checkbox").prop("checked", false);
  }
}

function CKAllsOne(){
var count = 0;  
    $("input[type=checkbox][name=subcheck]").each(function(){  
        if($(this).attr('checked') != 'checked'){// 判断一组复选框是否有未选中的  
            count+=1;  
        }  
    });  
    if(count == 0) { // 如果没有未选中的那么全选框被选中  
    $("#ckAll").attr('checked', true);  
    } else {  
    $("#ckAll").attr('checked',false);  
    }  
}

注:因为批量删除一般为多个页面,所以我就将片段2写到公共js中去,通过片段1来实现传递值与删除成功之后的操作。

接下来就是后台操作了!

C.Controller层:

  /**
   * 批量删除
   * @param request
   * @param response
   * @throws IOException 
   */
    @ResponseBody
    @RequestMapping("/ckDeletes")
    public void ckDeletes(HttpServletRequest request,HttpServletResponse response) throws IOException{
        String items = request.getParameter("delitems");
        List<String> delList = new ArrayList<String>();
        String[] strs = items.split(",");
User user=(User) request.getSession().getAttribute("user");
        for (String str : strs) {
            delList.add(str);
        }
  Map<String,Object> map = new HashMap<String,Object>();
        map.put("delList",delList);
try{ radarService.batchDeletes(map);
  msg = "success";
        } catch (Exception e) {
        msg = "fail";
        }
        String result = new GsonUtils().toJson(msg);
//String result = JSONArray.fromObject(list).toString();
response.setCharacterEncoding("utf-8");
response.setContentType("text/plain;charset=utf-8");
response.getWriter().write(result);
response.getWriter().flush();
response.getWriter().close();
    }

D.Service层:

/**
* 批量删除
* @param delList
* @param request
*/
public void batchDeletes(Map map){
radarMapper.batchDeletes(map);
}

E.Mapper层:

/**
* 删除
* @param map
*/
public void batchDeletes(Map map);

最后就是Mybatis了!
 

F.mapper.xml

<delete id="batchDeletes" parameterType="java.util.Map">
DELETE FROM t_radar where id in
<foreach collection="delList" index="index" item="item" open="(" separator="," close=")">   
  #{item}   
</foreach>
</delete>

以上就是批量删除的全部步骤了!
 

猜你喜欢

转载自blog.csdn.net/qq_35661171/article/details/86621301