ajax将集合传入后台
前台js
let lists=[];
for (var i=0;i<3;i++){
var list={};
list.name="张三";
list.age="20";
}
//lists=[{"name":"张三","age":"20},{"name":"张三","age":"20},{"name":"张三","age":"20}]
$.ajax({
url: '/test',
type: 'post',//注意用post
data: JSON.stringify(lists),//集合转换字符
dataType:"json",//json格式
contentType : 'application/json;charset=utf-8', //设置请求头信息
success:function (res) {//成功回调
if (res==1) {
layer.alert("数据正确");//弹框
}
},error: function(error){//后台异常信息,异常回调
layer.alert(error.responseText);//弹框
}
})
后台
@PostMapping("finBanlMessage")//对应前台请求类型
public Object finBanlMessage(@RequestBody ArrayList<Map<String,Object>> lists) {//用注解接收
int num=0;
String bankNames=null;
String bankwang=null;
try {
for (Map<String, Object> x : lists) {
List<Map<String, Object>> maps = bankReadService.finBanlMessage(x.get("bankNames").toString(), x.get("bankwang").toString());//查询数据库接口
if(maps.size()>0){
num+=1;
} else{
num=0;
bankNames=x.get("bankNames").toString();
bankwang=x.get("bankwang").toString();
throw new Exception(x.get("bankNames")+","+ x.get("bankwang")+"数据不存在!");
}
}
if(num!=0){
return "1";
}else{
throw new Exception( bankNames+","+bankwang+",数据不存在!");
}
}catch (Exception ex){
LOGGER.error("finBankCode",ex);
return bankNames+","+bankwang+",数据不存在!";
}
}
批量删除
++前台
//主要内容前台放数组,后台走循环
html代码
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="batchdel">批量删除</a>
/**************///
scpric代码
table.on('toolbar(test)', function(obj) {
var checkStatus = table.checkStatus(obj.config.id),
data = checkStatus.data;
console.log(data)
console.log(obj.config.id)
switch(obj.event) {
case 'batchdel'://上面的名称
var checkStatus = table.checkStatus(obj.config.id);
var data = checkStatus.data;
if(data.length == 0) {
layer.msg('至少选一个吧');
return false;
}
layer.confirm('真的要删除选中的项吗?', function(
index) {
layer.close(index);
index = layer.load(1, {
shade: [0.1, '#fff']
});
var arr = [];
for(var i = 0; i < data.length; i++) {
arr.push(checkStatus.data[i].examId);//改成数据库id
}
$.post("/exam/ldelStu", {//接口
'examId': arr
}, function(data) {
var i = data.count;
if(i >= 1) {
layer.close(index);
layer.msg("删除成功!");
table.reload('tableload');
} else {
layer.msg("删除失败!");
}
}, 'json');
})
break;
}
});
接口
// 批量删除数据
int batchStu(ArrayList<Integer> examId);
//控制层
// 批量删除数据
@RequestMapping("/exam/ldelStu")
~~//或是@RequestParam("examId")~~
public Object idelStu(@RequestParam("examId[]") ArrayList<Integer> examId) {
int i = examMapper.batchStu(examId);
if (i >= 1) {
return new Result(200, "删除成功", i, examId);
} else {
return new Result(402, "删除失败", i, null);
}
}
sql代码
//主要内容加上for循环
<!-- 批量逻辑删除 -->
<update id="batchStu">
UPDATE exam SET examNum =1 WHERE examId in
<foreach collection="list" index="no" item="examId" open="("
separator="," close=")">
${examId}
</foreach>
</update>