JavaWEB实现批量删除功能
先根大家说说需要实现的功能把!
说来也简单,就是将平时的单个删除记录改成批量删除,在页面中是利用复选框进行批量删除的!
思路:
首先利用javaScript获取到复选框中被选中的记录名,将每一个选中的记录名存储到变量中,再传到后台进行批量删除。
给大家看看代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="css/font.css">
</head>
<body topmargin="0" leftmargin="0" bottommargin="0">
<form name="form1" method="post">
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20" bgcolor="#FFCF60"><div align="center" class="style1">用户管理</div></td>
</tr>
<tr>
<td bgcolor="#666666"><table width="600" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td width="224" height="20" bgcolor="#FFFFFF"><div align="center">用户昵称</div></td>
<td width="93" bgcolor="#FFFFFF"><div align="center">用户状态</div></td>
<td width="79" bgcolor="#FFFFFF"><div align="center">删除</div></td>
<td width="75" bgcolor="#FFFFFF"><div align="center">查看信息</div></td>
</tr>
<c:forEach items="${user}" var="s">
<tr>
<td height="20" bgcolor="#FFFFFF"><div align="center">${s.name}</div></td>
<td height="20" bgcolor="#FFFFFF"><div align="center">
<c:if test="${s.state=='0'}">
冻结
</c:if>
<c:if test="${s.state=='1'}">
未冻结
</c:if>
</div></td>
<td height="20" bgcolor="#FFFFFF"><div align="center">
<input type="checkbox" name="user_name" value="${s.name}"></div></td>
<td height="20" bgcolor="#FFFFFF"><div align="center"><a href="User_ulistServlet.do?id=${s.id}"><img src="images/button_select.png" width="14" height="13" border="0"></a></div></td>
</tr>
</c:forEach>
</table></td>
</tr>
</table>
<br>
<table width="600" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="right">
<input type="button" value="删除选项" class="buttoncss" οnclick="deleteAllUser()">
</td>
</tr>
</table>
</form>
<script src="js/jquery-3.5.0.js"></script>
<script>
/* 步骤1:先将复选框中的value用取到的名字来代替 */
function deleteAllUser(){
// 获取checkbox的所有选中的checked框
var option = $("input:checkbox:checked");
//取出checked框中的值
var checkedName = "";
var flag = true;
//循环取出输入框的值
for (var i = 0; i < option.length; i++) {
//如果只有只有一条,则直接添加到容器中
if (flag) {
flag = false;
checkedName += option[i].value;
}else{
//否则将值之间加上","分割在添加到容器中
checkedName += ","+option[i].value;
}
var name = window.confirm("你确定要删除这条记录吗");
/* alert(checkedId); */
if(name){
window.location.href = "User_deleteServlet.do?name="+checkedName;
}
}
}
</script>
</body>
</html>
这里主要是用到jstl中的标签进行显示数据的
然后再看看servlet中的代码
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDao;
/**
* Servlet implementation class User_deleteServlet
*/
@WebServlet("/User_deleteServlet.do")
public class User_deleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public User_deleteServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//步骤1:获取页面参数
String uName = request.getParameter("name");
// 由于uName是String类型,并且含有逗号分隔符,
// 我们自然而然想到了split()函数分割String为一个String[]数组。
String[] name = uName.split(",");
// 步骤2: 利用for循环语句依次调用DAO层删除功能的函数
//首先new一个UserDao对象,然后写for循环,利用UserDao调用DAO层删除函数
UserDao userDao = new UserDao();
int rs = -1;
//循环调用
for(int i=0; i < name.length; i++) {
rs = userDao.deleteUserByName(name[i]);//删除成功则返回true
}
if(rs == 1){
response.sendRedirect("User_listServlet.do");
}else{
response.sendRedirect("error.jsp");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
根据获取到的数据,用字符串分割得到每一个需要删除是名字,最后循环调用删除方法进行删除!
根据获取到的数据,用字符串分割得到每一个需要删除是名字,最后循环调用删除方法进行删除!