ajax实现批量删除用户功能
2019年7月18日
ajax简介
1.Ajax的批量删除
Ajax 即“AsynchronousJavascriptAndXML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。
Ajax = 异步JavaScript和XML(标准通用标记语言的子集)。
Ajax 是一种用于创建快速动态网页的技术。
Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
导入jquery的文件
user-list.jsp中:
放在<head>标签中!
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
然后可以用idea中的万能键Alt+Enter下载:
下载成功后紧跟其下写js设计批量删除的script:
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<%--批量删除--%>
<script type="text/javascript">
function deleteAll() {
var checkedNum = $("input[name ='ids']:checked").length;
if(checkedNum == 0){
alert("你选了吗?");
return;
}
if(confirm("真的要删吗?")){
var userList = new Array();
$("input[name='ids']:checked").each(function (){
userList.push($(this).val());
});
}
$.ajax({
type : "post",
url: "${pageContext.request.contextPath}/user/batchDelete.do",
data : {userList : userList.toString()},
success : function() {
alert("删好了!");
location.reload();
},
error : function(){
alert("看看哪里出问题了?");
}
});
}
</script>
controller:
从user-list中传入的userList是"id1,id2,id3,id4,…"的样子的,所以用字符串数据把这一字符串存储,以,为分隔。同时数据库中id是Integer的,所以要用转型。
//批量删除
@RequestMapping("/batchDelete.do")
public String batchDelete(String userList){
String[] strs = userList.split(",");
List<Integer> ids = new ArrayList<>();
for(int i = 0;i<strs.length;i++){
ids.add(Integer.parseInt(strs[i]));
}
userService.batchDelete(ids);
return "redirect:findAll.do";
}
service:
//批量删除
public void batchDelete(List<Integer> ids){
userDao.batchDelete(ids);
}
dao:
//批量删除
void batchDelete(List<Integer> ids);
mapper:
传入的参数是list列表,所以可以用mybatis中的foreach标签功能,把每一项的id取出,拼接成"(1,2,3,4,5)"的样子。
<!--批量删除-->
<delete id="batchDelete" parameterType="list">
delete from tb_user where id in
<foreach collection="list" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>