Web - 根據條件查詢使用者資訊(篩選)並展示.
阿新 • • 發佈:2018-11-19
準備工作就不在介紹了, 可以參考查詢所有使用者資訊的案例:
https://blog.csdn.net/qq_42986107/article/details/83117451
Servlet -> Condifition.java
@WebServlet("/selectBycondition") public class ConditionServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=utf-8"); // 獲取傳遞過來的引數(查詢條件) String sex = request.getParameter("sex"); String address = request.getParameter("address"); // 建立UserService物件 , 並呼叫其方法.1 UserService us = new UserService(); List<User> user = us.selectByCondition(sex,address); // 將資訊設定到域中 request.setAttribute("user",user); // 將選擇的條件也設定到域中 , 方便回顯. request.setAttribute("sex",sex); request.setAttribute("address",address); // 請求轉發到list頁面 ,進行展示. request.getRequestDispatcher(request.getContextPath()+"/list.jsp").forward(request,response); } }
Service層 -> UserService.java
public class UserService {
// 呼叫UserDao物件中的方法 ,
UserDao ud = new UserDao();
// 根據條件查詢資料.
public List<User> selectByCondition(String sex, String address) {
return ud.selectByCondition(sex,address);
}
}
Dao層 -> UserDao.java
public class UserDao { // 根據條件 , 查詢資料. public List<User> selectByCondition(String sex, String address) { // 建立QueryRunner物件. QueryRunner qr = new QueryRunner(DataSourceUtil.getDataSource()); // 建立sql語句. String sql = "select * from user where 1=1 "; // 建立一個集合 , 對兩個條件進行判斷 , 否和就新增進去. List list = new ArrayList(); // 如果查詢條件不為空 , 就新增查詢條件. if (sex!=null&&sex.trim().length()>0){ sql+=" and sex=? "; list.add(sex); } if(address!=null&&address.trim().length()>0){ sql+=" and address=? "; list.add(address); } // 執行sql try { return qr.query(sql,new BeanListHandler<>(User.class),list.toArray()); } catch (SQLException e) { throw new RuntimeException(e); } } }
展示頁面 -> list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>使用者資訊管理系統</title> <!-- 1. 匯入CSS的全域性樣式 --> <link href="resource/css/bootstrap.min.css" rel="stylesheet"> <!-- 2. jQuery匯入,建議使用1.9以上的版本 --> <script src="resource/js/jquery-2.1.0.min.js"></script> <!-- 3. 匯入bootstrap的js檔案 --> <script src="resource/js/bootstrap.min.js"></script> <style type="text/css"> td, th { text-align: center; } </style> </head> <body> <div class="container"> <h3 style="text-align: center">使用者資訊列表</h3> <table border="1" class="table table-bordered table-hover"> <tr> <td colspan="8"> <%-- action預設不寫就是本地址 --%> <form action=""> 性別: <select name="sex"> <option value="">---請選擇---</option> <%-- 進行資訊回顯.--%> <c:if test="${empty sex}"> <option value="男">男</option> <option value="女">女</option> </c:if> <%-- 如果選中男,就回顯男 --%> <c:if test="${sex=='男'}"> <option value="男" selected>男</option> <option value="女">女</option> </c:if> <c:if test="${sex=='女'}"> <option value="男">男</option> <option value="女" selected>女</option> </c:if> </select> 籍貫:<input type="text" name="address" placeholder="城市名稱..." value="${address}" > <input type="submit" value="查詢使用者"> </form> </td> </tr> <tr class="success"> <th>編號</th> <th>姓名</th> <th>性別</th> <th>年齡</th> <th>籍貫</th> <th>QQ</th> <th>郵箱</th> <th>操作</th> </tr> <c:forEach items="${user}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.sex}</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="update.jsp">修改</a> <a class="btn btn-default btn-sm" href="javascript:;" onclick="userDel(${user.id})">刪除</a> </td> </tr> </c:forEach> <tr> <td colspan="8" align="center"><a class="btn btn-primary" href="add.jsp">新增聯絡人</a></td> </tr> </table> </div> </body> </html>