您的位置:首页 > 编程语言 > Java开发

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

2017-09-11 17:03 295 查看
此项目基于的框架是: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

4000
* @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>

以上就是批量删除的全部步骤了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  批量删除