ajax传递data:
data: JSON.stringify(checkData),
Controller接收加@RequestBody注解
public JsonResult batchDel(@RequestBody List batchDelCases) {}
前端
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-bottom: 10px;">
<!-- 头部工具栏-->
<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>
<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">添加</button>
</div>
<table id="LAY-user-manage" lay-filter="LAY-user-manage" class="layui-hide"></table>
</div>
</div>
</div>
<script>
layui.config({
base: '/layuiAdmin/src/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'useradmin', 'table'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,laypage = layui.laypage;
//table列表渲染
table.render({
elem:'#LAY-user-manage',
height: 'full-200',
url:'/admin/cases/list',
title:'解决方案表',
page: true,
limit:5,
limits: [3,5,10],
cols:[[
{type:'checkbox',fixed:'left'}//多选框
,{field:'id', width:80, sort: true,title:'ID'}
,{field:'title', width:200, title: '标题'}
,{field:'pic',width:250,title:'封面图片',templet:'#imgtmp'}
,{field:'content', minWidth:400, title: '内容' }
,{field:'sort', width:100, title: '分类' }
,{fixed: 'right', width: 165, align:'center', toolbar: '#table-useradmin-webuser'}
]]
});
//头部监听事件
var active = {
//点击删除
batchdel: function(){
//多选
var checkStatus = table.checkStatus('LAY-user-manage')
,checkData = checkStatus.data; //得到选中的数据
if(checkData.length === 0){
return layer.msg('请选择数据');
} else if (checkData.length === 1) {
//选择单行数据
layer.prompt({
formType: 1
,title: '敏感操作,请验证口令'
}, function(value, index){
layer.close(index);
layer.confirm('确定删除吗?', function(index) {
console.log(checkData);
//执行 Ajax 后重载
$.ajax({
url: '/admin/cases/del',
method:'post',
datatype:'json',
data:checkData[0],
success:function (res) {
if (res.code === '0') {
layer.msg(res.msg);
table.reload('LAY-user-manage');
} else {
layer.msg(res.msg);
}
}
//,……
});
});
});
} else {
//选择多行数据,传递json数组
layer.prompt({
formType: 1
,title: '敏感操作,请验证口令'
},function (value, index) {
layer.close(index);
layer.confirm('确定删除吗?', function(index) {
console.log(checkData);
//执行 Ajax 后重载
$.ajax({
url: '/admin/cases/batchdel',
method:'post',
data: JSON.stringify(checkData),
dataType: "JSON",
contentType : 'application/json;charset=utf-8',
success:function (res) {
if (res.code === '0') {
layer.msg(res.msg);
table.reload('LAY-user-manage');
} else {
layer.msg(res.msg);
}
}
//,……
});
});
})
}
}
};
});
</script>
Controller
@Controller
@RequestMapping("/admin/cases")
public class CasesController {
@Resource
private CasesService casesService;
@PostMapping("/batchdel")
@ResponseBody
//接收的参数必须加@RequestBody
public JsonResult batchDel(@RequestBody List<Cases> batchDelCases) {
int i = 0;//成功删除的数据条数
List failed = new ArrayList();//删除失败的数据ID
for (Cases batchDelCase : batchDelCases) {
int j = casesService.delCase(batchDelCase);
if (j > 0) {
i = i + j;
} else {
failed.add(batchDelCase.getId());
}
}
if (i == batchDelCases.size()) {
return JsonResult.success();//返回删除成功的json,无data
} else {
return JsonResult.failed("1", "id为:" + failed.toString() + "删除失败");//返回删除失败的ID
}
}
}
Mapper
public interface CasesMapper {
@Delete("delete from cases where id = #{id}")
public int delCase(Cases cases);
}