基于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>
以上就是批量删除的全部步骤了!
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>
以上就是批量删除的全部步骤了!
相关文章推荐
- J2EE项目使用自定义注解实现基于SpringMVC + Mybatis + Mysql的读写分离
- 基于Spring+SpringMVC+MyBatis实现高并发秒杀APIM
- 基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】
- 基于SpringMVC+Spring+MyBatis实现秒杀系统【数据库接口】
- 基于SpringMVC+Spring+MyBatis实现秒杀系统【客户端交互】
- 基于SpringMVC+Spring+MyBatis实现秒杀系统【业务逻辑】
- SpringMVC+Spring+Mybatis基于Maven的整合
- 微信小程序 websocket 实现SpringMVC+Spring+Mybatis
- 基于spring mvc + spring+mybatis+easyui+jquery+maven+mysql的后台权限管理系统
- 基于SpringBoot + Mybatis实现SpringMVC Web项目【原创】
- 详解Spring框架之基于Restful风格实现的SpringMVC
- EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理
- spring+springmvc+mybatis+mysql实现登录功能(下)
- 基于全注解的Spring3.1 mvc、myBatis3.1、Mysql的轻量级项目【转】
- 基于Spring + Spring MVC + Mybatis + Shiro 高性能web构建(未经博主允许不敢发布)
- SpringSecurity+SpringMVC +Mybatis3.0实现的web小框架
- 【Spring】SpringMVC之基于注解的实现SpringMVC+MySQL
- spring mvc+mybatis+ spring 基于全注解事务配置
- 基于Springmvc+Mybatis+Spring+Freemarker的物理分页插件(超级简单)
- zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)