• jsp 条件查询、列表分页


    条件查询

    dao

        //根据搜索条件筛选数据
        public List<User> GetUserBySearch(String userName, String sex) throws SQLException {
            String sql = "select * from User where 1=1 ";
            List<String> params = new ArrayList<String>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%"+userName+"%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
            return users;
        }

    service

       public List<User> GetUserBySearch(String userName,String sex) throws SQLException {
            UserDao dao = new UserDao();
            return dao.GetUserBySearch(userName,sex);
        }

    userList servlet

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            String userName = request.getParameter("userName");
            String sex = request.getParameter("sex");
    
            UserService service = new UserService();
            List<User> userList = null;
            try {
                //userList = service.GetAllService();
                userList = service.GetUserBySearch(userName,sex);
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            request.setAttribute("userName",userName);
            request.setAttribute("sex",sex);
    
            request.setAttribute("userList", userList);
            request.getRequestDispatcher("userList.jsp").forward(request,response);
        }

    userList.jsp

    <%@ page import="com.david.domain.User" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>用户列表</title>
    </head>
    <body>
    <div>
        按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
        按用户性别查找:<select id="selSex">
        <option value="">全部</option>
        <option value="男"></option>
        <option value="女"></option>
    </select> &nbsp;
    <button type="button" onclick="search()">搜索</button>
    </div>
    <script>
        //设置默认值
        window.onload = function (){
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                var option = document.getElementById("selSex").options[i];
                if(option.value == "${sex}"){
                    option.selected = true;
                }
            }
        }
    
        function search(){
            var userName = document.getElementById("txtUserName").value;
            var sex = "";
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                if(document.getElementById("selSex").options[i].selected){
                    sex = document.getElementById("selSex").options[i].value;
                }
            }
            location.href='userList?userName='+userName+"&sex="+sex;
        }
    </script>
    <table>
        <tr>
            <th>用户ID</th>
            <th>用户名</th>
            <th>用户密码</th>
            <th>用户年龄</th>
            <th>用户性别</th>
            <th>操作</th>
        </tr>
        <%
            if (request.getAttribute("userList") != null) {
        %>
        <%for (User u : (List<User>) request.getAttribute("userList")) {%>
        <tr>
            <td><%=u.getUserId()%>
            </td>
            <td><%=u.getUserName()%>
            </td>
            <td><%=u.getPassWord()%>
            </td>
            <td><%=u.getAge()%>
            </td>
            <td><%=u.getSex()%>
            </td>
            <td>
                <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
                <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
            </td>
        </tr>
        <%}%>
        <%}%>
    </table>
    <a href="AddUser.jsp">添加用户</a>
    </body>
    </html>

    列表分页

    在domain中创建pageBean实体

    package com.david.domain;
    
    import java.util.List;
    
    public class PageBean<T> {
        //当前页
        private int curPage;
        //当前显示条数
        private int pageSize;
        //总页数
        private int totalPage;
        //总条数
        private int totalCount;
        //展示的数据
        private List<T> Data;
    
        public int getCurPage() {
            return curPage;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public int getTotalPage() {
            return totalPage;
        }
    
        public int getTotalCount() {
            return totalCount;
        }
    
        public List<T> getData() {
            return Data;
        }
    
        public void setCurPage(int curPage) {
            this.curPage = curPage;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }
    
        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
        }
    
        public void setData(List<T> data) {
            Data = data;
        }
    
    }

    在dao中 创建分页方法

    //获取总条数
        public int GetUserCount(String userName, String sex) throws SQLException {
            String sql = "select count(*) from User where 1=1 ";
            List<String> params = new ArrayList<String>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%" + userName + "%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            long count = (long)qr.query(sql,new ScalarHandler(),params.toArray());
            return (int)count;
        }
    
        public List<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
            String sql = "select * from User where 1=1 ";
            List<Object> params = new ArrayList<Object>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%" + userName + "%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            sql += " limit ?,?";
            page = (page - 1) * pageSize;
            params.add(page);
            params.add(pageSize);
    
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
            return users;
        }

    service

    public PageBean<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
            UserDao dao = new UserDao();
            PageBean pageBean = new PageBean();
            pageBean.setCurPage(page);
            pageBean.setPageSize(pageSize);
            int totalCount = dao.GetUserCount(userName, sex);
            pageBean.setTotalCount(totalCount);
            int totalPage = (int) Math.ceil(1.0 * totalCount / pageSize);
            pageBean.setTotalPage(totalPage);
            List<User> data = dao.GetUserListForPageBean(userName,sex,page,pageSize);
            pageBean.setData(data);
            return pageBean;
        }

    UserListForPage servlet

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            String userName = request.getParameter("userName");
            String sex = request.getParameter("sex");
            String page = request.getParameter("page");
    
            int curPage = 1;
            if(page != null && page != ""){
                curPage = Integer.parseInt(page);
            }
            int pageSize = 5;
    
            UserService service = new UserService();
            PageBean<User> pageBean = null;
            try {
                pageBean = service.GetUserListForPageBean(userName,sex,curPage,pageSize);
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            request.setAttribute("userName",userName);
            request.setAttribute("sex",sex);
    
            request.setAttribute("pageBean", pageBean);
            request.getRequestDispatcher("userListForPage.jsp").forward(request,response);
        }

    web.xml

        <servlet>
            <servlet-name>UserListForPage</servlet-name>
            <servlet-class>com.david.web.UserListForPage</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>UserListForPage</servlet-name>
            <url-pattern>/userListForPage</url-pattern>
        </servlet-mapping>

    userListForPage.jsp

    <%@ page import="com.david.domain.User" %>
    <%@ page import="java.util.List" %>
    <%@ page import="com.david.domain.PageBean" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>用户列表</title>
    </head>
    <body>
    <div>
        按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
        按用户性别查找:<select id="selSex">
        <option value="">全部</option>
        <option value="男"></option>
        <option value="女"></option>
    </select> &nbsp;
        <button type="button" onclick="search()">搜索</button>
        <a href="AddUser.jsp">添加用户</a>
    </div>
    <script>
        //设置默认值
        window.onload = function (){
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                var option = document.getElementById("selSex").options[i];
                if(option.value == "${sex}"){
                    option.selected = true;
                }
            }
        }
    
        function search(){
            var userName = document.getElementById("txtUserName").value;
            var sex = "";
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                if(document.getElementById("selSex").options[i].selected){
                    sex = document.getElementById("selSex").options[i].value;
                }
            }
            location.href='userList?userName='+userName+"&sex="+sex;
        }
    </script>
    <table>
        <tr>
            <th>用户ID</th>
            <th>用户名</th>
            <th>用户密码</th>
            <th>用户年龄</th>
            <th>用户性别</th>
            <th>操作</th>
        </tr>
        <%
            PageBean pageBean = (PageBean)request.getAttribute("pageBean");
            if (pageBean != null && pageBean.getData() != null) {
        %>
        <%for (User u : (List<User>)pageBean.getData()) {%>
        <tr>
            <td><%=u.getUserId()%>
            </td>
            <td><%=u.getUserName()%>
            </td>
            <td><%=u.getPassWord()%>
            </td>
            <td><%=u.getAge()%>
            </td>
            <td><%=u.getSex()%>
            </td>
            <td>
                <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
                <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
            </td>
        </tr>
        <%}%>
        <%}%>
    </table>
    <div class="page">
        <%if(pageBean.getCurPage() != 1){%>
        <a href="?page=1">首页</a>
        <a href="?page=<%=pageBean.getCurPage()-1%>">上一页</a>
        <%}%>
    
        <%for(int i = 1;i<=pageBean.getTotalPage();i++){
            %>
        <%if(pageBean.getCurPage() == i){%>
        <a href="?page=<%=i%>" class="currentPage"><%=i%></a>
        <%}else{%>
        <a href="?page=<%=i%>"><%=i%></a>
        <%}%>
        <%}%>
        <%if(pageBean.getCurPage() != pageBean.getTotalPage()){%>
        <a href="?page=<%=pageBean.getCurPage()+1%>">下一页</a>
        <a href="?page=<%=pageBean.getTotalPage()%>">尾页</a>
        <%}%><%=pageBean.getTotalCount()%>条数据,<%=pageBean.getTotalPage()%>页。
    </div>
    <style>
        .page a{
            font-size:12px;
            text-decoration: none;
            color:#ccc;
        }
        .page .currentPage{
            color:#000;
            font-size:20px;
        }
    </style>
    </body>
    </html>
  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/baidawei/p/9025431.html
Copyright © 2020-2023  润新知