日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量选中删除(包含全选)---jsp,servlet

發布時間:2024/9/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量选中删除(包含全选)---jsp,servlet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.引言

前面文章已經實現了登錄,查詢,添加,修改和刪除等功能,本篇文章在前面的基礎上繼續實現刪除選中的功能。

一.分析

刪除功能分析

》》》1.在前端list.jsp頁面的刪除選中的按鈕中綁定需要刪除的記錄條目的id,如下代碼中:

<script type="text/javascript"> //處理選中刪除的jsfunction deluser(i) {//用戶安全提示if(confirm("您確定需要刪除嗎?")){location.href="${pageContext.request.contextPath }/delUserServlet?id="+i;}}window.onload=function(){//給刪除選中按鈕添加點擊事件document.getElementById("delselcted").onclick=function(){if(confirm("您確定刪除這些選項嗎?")){ //在刪除前給刪除添加保險//判斷選項中是否有被選上的,如果沒有的話不執行刪除,否則沒有if會造成空指針異常var flag =false;var cbs=document.getElementsByName("uid"); //獲取所有的選項(包括選的,沒有選的)for(var i=0;i<cbs.length;i++){if(cbs[i].checked){ //一旦有被選的項,就停止循環flag=true;break; }}if(flag){//一旦有被選的項,就提交表單//一旦刪除選中,首先創建一個表單,把所有信息提交給delselectedservlet處理document.getElementById("form").submit(); }}}//一鍵全選,一鍵全不選//通過id獲取第一個全選項document.getElementById("firstcb").onclick=function(){var cbs=document.getElementsByName("uid");//遍歷下面所有的選項for(var i=0;i<cbs.length;i++){//設置cbs[i].checked的狀態與第一個firstcb.checked相同cbs[i].checked=this.checked;}}; }</script><div style="float: right; margin: 5px;"> <a class="btn btn-primary" href="${pageContext.request.contextPath }/add.jsp">添加聯系人</a><a class="btn btn-primary" href="javascript:void(0);" id="delselcted">刪除選中</a> </div>

接下來表單的

<%--下面這個form表單是為了提交所有選擇的刪除項 至delselectedservlet至于delselectedservlet怎么獲得那個項被選中,可以首先設置表單提交,然后將input中checkbox欄,設name="id"使之該id的value=${user.id},最后通過表單提交給了delselectedservlet--%><form action="${pageContext.request.contextPath }/delselectedservlet" id="form" method="post"><table border="1" class="table table-bordered table-hover"><tr class="success"><th><input type="checkbox" id="firstcb"></th><th>編號</th><th>姓名</th><th>性別</th><th>年齡</th><th>籍貫</th><th>QQ</th><th>郵箱</th><th>操作</th></tr><c:forEach items="${pb.list}" var="user" varStatus="s"><tr> <%-- 這里-綁定了每個checkbox 的name=uid value綁定的是用戶的id --%><td><input type="checkbox" name="uid" value="${user.id}"></td><td>${s.count+start}</td><td>${user.name}</td><td>${user.gender }</td><td>${user.age }</td><td>${user.address }</td><td>${user.qq }</td><td>${user.email }</td><td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath }/queryupdate?id=${user.id}">修改</a>&nbsp;<a class="btn btn-default btn-sm" href="javascript:deluser(${user.id});" >刪除</a></td></tr></c:forEach></table></form><div><nav aria-label="Page navigation"><ul class="pagination"><c:if test="${pb.currentPage==1 }"> <%--如果當前按鈕為1,應該使他禁止狀態 --%><li class="disabled"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage-1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li></c:if><c:if test="${pb.currentPage!=1 }"> <%--如果當前按鈕不為1 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage-1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li></c:if><c:forEach begin="1" end="${pb.totalPage }" step="1" var="i"><c:if test="${pb.currentPage==i }"> <%--如果當前頁碼與循環體 剛好一致,就處于激活狀態 --%><li class="active"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${i}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" >${i}</a></li></c:if><c:if test="${pb.currentPage !=i }"> <%--如果當前頁碼與循環體 不一致,就處于非激活狀態 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${i}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" >${i}</a></li></c:if></c:forEach><c:if test="${pb.currentPage==pb.totalPage }"> <%--如果當前按鈕為最大頁碼,應該使他禁止狀態 --%><li class="disabled"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage+1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}"aria-label="Previous" > <%--而又可以使用css是鼠標處于不可點擊狀態class="disable" --%><span aria-hidden="true">&raquo;</span></a></li></c:if><c:if test="${pb.currentPage!=pb.totalPage }"> <%--如果當前按鈕不為不為最大頁碼 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage+1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}"aria-label="Previous" ><span aria-hidden="true">&raquo;</span></a></li></c:if><span style="font-size: 25px;margin-left: 5px;"><c:if test="${pb.totalCount==0 }">共0條記錄,共0頁</c:if><c:if test="${pb.totalCount!=0 }">共${pb.totalCount }條記錄,共${pb.totalPage }頁</c:if></span></ul></nav></div> </div> </body> </html>

》》2.編寫delselectedservlet獲取uid(其實是選中的用戶id)

? ? ? ? ? #獲取用戶id的組(可能多個勾選)

? ? ? ? ? #調用service層來刪除用戶信息

? ? ? ? ? #刪除完后,重新重定向跳轉到查詢所有用戶的界面

??

》》3.編寫userservice類和userDao類

? ? ? ? ? #遍歷從上一步delselectedservlet傳過來的id數組

? ? ? ? ?#調用根據id來刪除數據庫用戶的信息

二.代碼的編寫

2.1? ? list.jsp頁面綁定刪除選中用戶的uid

然后通過提交表單的方式把刪除選中用戶的uid傳入到了/delselectedservlet進行處理

<%@ 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> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head><!-- 指定字符集 --><meta charset="utf-8"><!-- 使用Edge最新的瀏覽器的渲染方式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- viewport視口:網頁可以根據設置的寬度自動進行適配,在瀏覽器的內部虛擬一個容器,容器的寬度與設備的寬度相同。width: 默認寬度與設備的寬度相同initial-scale: 初始的縮放比,為1:1 --><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --><title>用戶信息管理系統</title><!-- 1. 導入CSS的全局樣式 --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- 2. jQuery導入,建議使用1.9以上的版本 --><script src="js/jquery-2.1.0.min.js"></script><!-- 3. 導入bootstrap的js文件 --><script src="js/bootstrap.min.js"></script><style type="text/css">td, th {text-align: center;}.disable {pointer-events: none;}</style><script type="text/javascript">function deluser(i) {//用戶安全提示if(confirm("您確定需要刪除嗎?")){location.href="${pageContext.request.contextPath }/delUserServlet?id="+i;}}window.onload=function(){//給刪除選中按鈕添加點擊事件document.getElementById("delselcted").onclick=function(){if(confirm("您確定刪除這些選項嗎?")){ //在刪除前給刪除添加保險//判斷選項中是否有被選上的,如果沒有的話不執行刪除,否則沒有if會造成空指針異常var flag =false;var cbs=document.getElementsByName("uid"); //獲取所有的選項(包括選的,沒有選的)for(var i=0;i<cbs.length;i++){if(cbs[i].checked){ //一旦有被選的項,就停止循環flag=true;break; }}if(flag){//一旦有被選的項,就提交表單document.getElementById("form").submit(); //一旦刪除選中,首先創建一個表單,把所有信息提交給delselectedservlet處理}}}//一鍵全選,一鍵全不選//通過id獲取第一個全選項document.getElementById("firstcb").onclick=function(){var cbs=document.getElementsByName("uid");//遍歷下面所有的選項for(var i=0;i<cbs.length;i++){//設置cbs[i].checked的狀態與第一個firstcb.checked相同cbs[i].checked=this.checked;}}; }</script> </head> <body> <div class="container"><h3 style="text-align: center">用戶信息列表</h3><div style="float: left;"><form class="form-inline" action="${pageContext.request.contextPath }/finduserpageservlet" method="post"><div class="form-group"><label for="exampleInputName2">姓名</label><input type="text" class="form-control" id="exampleInputName2" name="name" value="${condtion.name[0] }"></div><div class="form-group"><label for="exampleInputName3">籍貫</label><input type="text" class="form-control" id="exampleInputName3" name="address" value="${condtion.address[0]}"></div><div class="form-group"><label for="exampleInputEmail2">郵箱</label><input type="email" class="form-control" id="exampleInputEmail2" name="email" value="${condtion.email[0]}"></div><button type="submit" class="btn btn-default">查詢</button></form></div><div style="float: right; margin: 5px;"> <a class="btn btn-primary" href="${pageContext.request.contextPath }/add.jsp">添加聯系人</a><a class="btn btn-primary" href="javascript:void(0);" id="delselcted">刪除選中</a> </div><%--下面這個form表單是為了提交所有選擇的刪除項 至delselectedservlet至于delselectedservlet怎么獲得那個項被選中,可以首先設置表單提交,然后將input中checkbox欄,設name="id"使之該id的value=${user.id},最后通過表單提交給了delselectedservlet--%><form action="${pageContext.request.contextPath }/delselectedservlet" id="form" method="post"><table border="1" class="table table-bordered table-hover"><tr class="success"><th><input type="checkbox" id="firstcb"></th><th>編號</th><th>姓名</th><th>性別</th><th>年齡</th><th>籍貫</th><th>QQ</th><th>郵箱</th><th>操作</th></tr><c:forEach items="${pb.list}" var="user" varStatus="s"><tr><td><input type="checkbox" name="uid" value="${user.id}"></td><td>${s.count+start}</td><td>${user.name}</td><td>${user.gender }</td><td>${user.age }</td><td>${user.address }</td><td>${user.qq }</td><td>${user.email }</td><td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath }/queryupdate?id=${user.id}">修改</a>&nbsp;<a class="btn btn-default btn-sm" href="javascript:deluser(${user.id});" >刪除</a></td></tr></c:forEach></table></form><div><nav aria-label="Page navigation"><ul class="pagination"><c:if test="${pb.currentPage==1 }"> <%--如果當前按鈕為1,應該使他禁止狀態 --%><li class="disabled"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage-1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li></c:if><c:if test="${pb.currentPage!=1 }"> <%--如果當前按鈕不為1 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage-1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li></c:if><c:forEach begin="1" end="${pb.totalPage }" step="1" var="i"><c:if test="${pb.currentPage==i }"> <%--如果當前頁碼與循環體 剛好一致,就處于激活狀態 --%><li class="active"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${i}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" >${i}</a></li></c:if><c:if test="${pb.currentPage !=i }"> <%--如果當前頁碼與循環體 不一致,就處于非激活狀態 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${i}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}" >${i}</a></li></c:if></c:forEach><c:if test="${pb.currentPage==pb.totalPage }"> <%--如果當前按鈕為最大頁碼,應該使他禁止狀態 --%><li class="disabled"><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage+1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}"aria-label="Previous" > <%--而又可以使用css是鼠標處于不可點擊狀態class="disable" --%><span aria-hidden="true">&raquo;</span></a></li></c:if><c:if test="${pb.currentPage!=pb.totalPage }"> <%--如果當前按鈕不為不為最大頁碼 --%><li><a href="${pageContext.request.contextPath }/finduserpageservlet?currentPage=${pb.currentPage+1}&rows=5&name=${condtion.name[0]}&address=${condtion.address[0]}&email=${condtion.email[0]}"aria-label="Previous" ><span aria-hidden="true">&raquo;</span></a></li></c:if><span style="font-size: 25px;margin-left: 5px;"><c:if test="${pb.totalCount==0 }">共0條記錄,共0頁</c:if><c:if test="${pb.totalCount!=0 }">共${pb.totalCount }條記錄,共${pb.totalPage }頁</c:if></span></ul></nav></div> </div> </body> </html>

2.2? delselectedservlet的編寫

package web;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 service.USerService; import service.UserServiceImpl; @WebServlet("/delselectedservlet") public class DelSelectedServlet extends HttpServlet {/*** */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubthis.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.設置編碼req.setCharacterEncoding("utf-8");//批量選中刪除//2.獲得前端選中的所有刪除項的idString[] ids=req.getParameterValues("uid");USerService uSerService=new UserServiceImpl();uSerService.delselecteduser(ids); //傳進去的是id數組//3.跳轉到查詢所有的用戶的jsp頁面resp.sendRedirect(req.getContextPath()+"/finduserpageservlet");}}

2.3? ?service層的userServi接口和UserServiceImpl實現類的編寫

userServi接口

package service; //user的業務接口import java.util.List; import java.util.Map;import domain.PageBean; import domain.User;public interface USerService {//定義業務查詢抽象方法public List<User> findAll();public void addUser(User user);public void deluser(String id);public User findUserById(String idString);public void updateuser(User user);public void delselecteduser(String[] ids); //刪除選中用戶的抽象方法public PageBean<User> findUserByPage(String currentPage, String row, Map<String, String[]> condtion); //模糊的分頁查詢PageBean<User> findUserByPage(String _currentPage, String _row); //普通的分頁查詢}

?UserServiceImpl實現類

package service;import java.util.List; import java.util.Map;import dao.UserDao; import dao.UserDaoImpl; import domain.PageBean; import domain.User;public class UserServiceImpl implements USerService{UserDao userDao=new UserDaoImpl();@Overridepublic List<User> findAll() {//調用dao,操作數據庫,查詢所有的用戶return userDao.findAll();}public void addUser(User user) {//調用添加用戶的方法userDao.addUser(user);}public void deluser(String id) {//刪除用戶信息userDao.deluser(Integer.parseInt(id)); //將參數變為整數}@Overridepublic User findUserById(String idString) {//通過id來查詢需要修改的用戶信息 return userDao.findUserById(Integer.parseInt(idString)); }@Overridepublic void updateuser(User user) {// 根據update.jsp中的用戶信息修改數據庫的用戶信息userDao.updateuser(user); }@Overridepublic void delselecteduser(String[] ids) {//批量選中刪除if(ids!=null&&ids.length>0) { //判斷是否有用戶被選中,防止空指針異常//批量選中刪除//根據id數組,刪除選中的用戶for(String id:ids) {//遍歷數組userDao.deluser(Integer.parseInt(id)); //參數轉換integer}} }//模糊的分頁查詢//condtion是模糊查詢的條件@Overridepublic PageBean<User> findUserByPage(String _currentPage, String _row,Map<String, String[]> condtion) {// 分頁查詢 ,根據當前頁碼和每頁個數可以查出,每一頁的開始頁碼int currentPage=Integer.parseInt(_currentPage); //字符串轉換整形int row=Integer.parseInt(_row); //字符串轉化成整形//封裝對象PageBean<User> pageBean=new PageBean<User>();//調用userdao接口的方法可以查詢總共記錄條數int total=userDao.totalCount(condtion);pageBean.setTotalCount(total);//獲取總共分多少頁int pagenumber=(total%row)==0 ? total/row :(total/row)+1;pageBean.setTotalPage(pagenumber);//注意://判斷分頁按鈕到達1和最大頁碼是應該不能在變化了if(currentPage<1) { //currentPage<0時currentPage=1;}if(currentPage>pagenumber) {currentPage=pagenumber; //currentPage>pagenumber時}pageBean.setCurrentPage(currentPage);pageBean.setRows(row);//分頁查詢 首先根據當前頁碼和每頁個數記錄計算每頁開始的頁碼//獲得每頁的記錄int n=(currentPage-1)>=0?(currentPage-1):0;int s=n*row;List<User> list =userDao.findByPage(s,row,condtion);pageBean.setList(list);//System.out.println(list);return pageBean;}@Overridepublic PageBean<User> findUserByPage(String _currentPage, String _row) {// 分頁查詢 ,根據當前頁碼和每頁個數可以查出,每一頁的開始頁碼int currentPage=Integer.parseInt(_currentPage); //字符串轉換整形int row=Integer.parseInt(_row); //字符串轉化成整形//封裝對象PageBean<User> pageBean=new PageBean<User>();//調用userdao接口的方法可以查詢總共記錄條數int total=userDao.totalCount();pageBean.setTotalCount(total);//獲取總共分多少頁int pagenumber=(total%row)==0 ? total/row :(total/row)+1;pageBean.setTotalPage(pagenumber);//注意://判斷分頁按鈕到達1和最大頁碼是應該不能在變化了if(currentPage<1) { //currentPage<0時currentPage=1;}if(currentPage>pagenumber) {currentPage=pagenumber; //currentPage>pagenumber時}pageBean.setCurrentPage(currentPage);pageBean.setRows(row);//分頁查詢 首先根據當前頁碼和每頁個數記錄計算每頁開始的頁碼//獲得每頁的記錄int n=(currentPage-1)>=0?(currentPage-1):0;int s=n*row;List<User> list =userDao.findByPage(s,row);pageBean.setList(list);//System.out.println(list);return pageBean;}}

2.4?在Dao層中UserDao接口,UserDaoImpl實現類分別編寫deluser抽象方法和deluser具體實現方法。

其實就是調用根據用戶id來刪除用戶的方法

UserDao接口

package dao;import java.util.List; import java.util.Map;import domain.User;public interface UserDao {public List<User> findAll(); //抽象方法public void addUser(User user);public void deluser(int id); //根據整型的id來刪除用戶public User findUserById(int parseInt);public void updateuser(User user);public int totalCount(); //查詢總記錄數public int totalCount(Map<String, String[]> condtion); //模糊查詢總記錄數public List<User> findByPage(int s, int row); //查詢每個分頁的記錄public List<User> findByPage(int s, int row, Map<String, String[]> condtion); //模糊查詢每個頁的記錄}

UserDaoImpl實現類

package dao;import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set;import javax.management.Query; import javax.xml.transform.Templates;import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ReturnRowsClause;import domain.LoginUser; import domain.User; import utils.JDBCUtils;public class UserDaoImpl implements UserDao{JdbcTemplate jdbcTemplate =new JdbcTemplate(JDBCUtils.getDataSource());public List<User> findAll() {// 操作數據庫,查詢String sql="select * from user";List<User> users=jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class));return users;}public LoginUser checkLoginUser( LoginUser loginUser) {//查詢登錄用戶信息String sqlString="select* from loginuser where username=? and password=?";//System.out.println("111"+loginUser);try {LoginUser lu=(LoginUser) jdbcTemplate.queryForObject(sqlString, new BeanPropertyRowMapper<LoginUser>(LoginUser.class),loginUser.getUserName(),loginUser.getPassword());return lu;} catch (Exception e) {// TODO: handle exceptione.printStackTrace();return null;} }public void addUser(User user) {//調用添加用戶的方法,//使用sql語句String sql="insert into user values(null,?,?,?,?,?,?)";jdbcTemplate.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());}@Overridepublic void deluser(int id) {//刪除用戶信息String sql="delete from user where id=?";jdbcTemplate.update(sql,id);}@Overridepublic User findUserById(int parseInt) {//根據id查詢用戶的信息String sql="select * from user where id=?";User user=jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),parseInt);return user; }@Overridepublic void updateuser(User user) {// 根據update.jsp中的用戶信息修改數據庫的用戶信息String sql="update user set name=?,gender=?,age=?,address=?,qq=?,email=? where id=?";jdbcTemplate.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail(),user.getId()); }@Overridepublic int totalCount() {// 普通查詢數據庫所有的記錄條數String sql="select count(*) from user";return jdbcTemplate.queryForObject(sql, Integer.class);}//模糊查詢總記錄數@Overridepublic int totalCount(Map<String, String[]> condtion) {//1.定義初始化模板的sql語句String sql="select count(*) from user where 1 = 1 ";//2.遍歷map集合,用stringBuilder存儲拼接的sql語句,list存儲map的值StringBuilder sb=new StringBuilder(sql);List<Object> list=new ArrayList<Object>();Set<String> key=condtion.keySet();//System.out.println(key);for(String k:key) {//排除分頁的currentPage,rows請求的鍵值if("currentPage".equals(k)||"rows".equals(k)) {continue;}//獲取valueString val=condtion.get(k)[0];//判斷是否有值if(val != null&&!"".equals(val)) {//如果有且不能空字符串,則是查詢條件,把他存儲到list中sb.append(" and "+k+" like ? "); //存儲拼接的sql語句list.add("%"+val+"%"); //將對應的map值存儲到list中,查詢的條件值}}//System.out.println(sb.toString());//System.out.println(list);sql=sb.toString(); //重寫拼接后的sqlreturn jdbcTemplate.queryForObject(sql, Integer.class,list.toArray());}@Overridepublic List<User> findByPage(int s, int row) {// 分頁查詢每個分頁的記錄String sql="select * from user limit ?,?";List<User> list=jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class),s,row);return list;}//模糊查詢每個頁的記錄@Overridepublic List<User> findByPage(int s, int row, Map<String, String[]> condtion) {//模糊查詢每個頁的記錄String sql="select * from user where 1=1 ";//2.遍歷map集合,用stringBuilder存儲拼接的sql語句,list存儲map的值StringBuilder sb=new StringBuilder(sql);List<Object> list=new ArrayList<Object>();Set<String> key=condtion.keySet();//System.out.println(key);for(String k:key) {//排除分頁的currentPage,rows請求的鍵值if("currentPage".equals(k)||"rows".equals(k)) {continue;}//獲取valueString val=condtion.get(k)[0];//判斷是否有值if(val != null&&!"".equals(val)) {//如果有且不能空字符串,則是查詢條件,把他存儲到list中sb.append(" and "+k+" like ? "); //存儲拼接的sql語句list.add("%"+val+"%"); //將對應的map值存儲到list中,查詢的條件值} }//添加分頁的sql語句sb.append(" limit ?,? "); //添加分頁的參數list.add(s); //添加每頁的開始頁碼list.add(row); //添加每頁的記錄數System.out.println(sb.toString());System.out.println(list);sql=sb.toString(); //重寫拼接后的sqlList<User> users=jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class),list.toArray()); return users;}}

2.5刪除后跳轉到重新查詢所有用戶的servlet

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.設置編碼req.setCharacterEncoding("utf-8");//批量選中刪除//2.獲得前端選中的所有刪除項的idString[] ids=req.getParameterValues("uid");USerService uSerService=new UserServiceImpl();uSerService.delselecteduser(ids); //傳進去的是id數組//3.跳轉到查詢所有的用戶的jsp頁面resp.sendRedirect(req.getContextPath()+"/finduserpageservlet");}

至此,刪除選中功能功能全部結束

三.其他

一鍵全選或一鍵全不選功能實現

在list.jsp頁面綁定checkbox一鍵全選

js處理一鍵全選,一鍵全不選

?

?

總結

以上是生活随笔為你收集整理的批量选中删除(包含全选)---jsp,servlet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 秋霞午夜视频 | 国产免费一区二区视频 | 亚洲男同视频 | 一区二区三区四区高清视频 | 亚洲欧美精品在线观看 | 亚洲无av在线中文字幕 | 九九视频在线播放 | 久久久99久久 | 国产在线拍揄自揄拍无码视频 | 精品一区二区三区不卡 | 国产精品福利片 | 奇米网久久 | 理论片中文字幕 | 亚洲精品国产成人久久av盗摄 | 成人av免费在线观看 | 美国av大片 | 欧美一区二区三区免费在线观看 | 天天噜 | 亚洲一区免费在线 | 国产孕妇孕交大片孕 | 国产精品成人va在线观看 | 超碰人人干 | www成人免费视频 | 欧美嫩草 | 韩日产理伦片在线观看 | 亚洲aaa| 色亭亭| 韩国精品一区二区三区 | 日韩一区二区精品视频 | 制服 丝袜 激情 欧洲 亚洲 | 99黄色 | 日本伦理中文字幕 | 成人亚洲精品 | 少妇扒开粉嫩小泬视频 | 欧美熟妇精品一区二区 | 黄色不卡av| 亚洲不卡一区二区三区 | 午夜一区 | 无人在线观看的免费高清视频 | 国产精品高潮呻吟久久久久久 | 亚洲裸体网站 | 亚洲最新av网站 | 欧美视频一区在线观看 | 激情导航 | 欧美性猛交久久久乱大交小说 | 色www亚洲国产张柏芝 | 国产乱码久久久 | 老牛av一区二区 | sese国产| 午夜美女福利 | 亚洲精品97久久 | 亚洲一区二区三区在线免费观看 | 黄色综合网 | 免费看大片a| 欧美成人久久久 | 2025韩国大尺度电影 | √天堂资源地址在线官网 | 国产欧美一区二区三区精华液好吗 | 一区二区三区韩国 | 大尺度做爰呻吟舌吻网站 | 成人影视网址 | 在线播放黄色网址 | 初高中福利视频网站 | 日韩高清久久 | 国产女人在线视频 | jizz性欧美2| h毛片| 亚洲成人久久久久 | 免费在线成人 | 综合国产在线 | 国产午夜一级片 | 99热最新在线 | 国产视频不卡一区 | se综合| 亚洲第一天堂在线观看 | 欧美做受69 | 丰满人妻一区二区三区四区 | 麻豆av电影在线 | 久草热在线视频 | 国产一级理论 | 亚洲无码乱码精品国产 | 丝袜在线视频 | 爱上av| 亚洲免费在线观看av | 超碰人人人人人人 | 国产,日韩,欧美 | av福利在线 | 国产一区二区免费在线观看 | 日韩性网| 97人妻精品一区二区三区软件 | 久久成人国产精品入口 | 欧美精品导航 | 天天欲色 | 成人免费91| 黄色网战入口 | 91av官网 | 国产在线一级片 | 六月激情婷婷 | 久草影视在线观看 |