• javaweb基础——简单的分页逻辑


    前言:分页有两种,真分页和假分页,两者区别点击这里,我也有好多代码都是看他的。话不多说,直接上代码。

    一.首先创建一个页面信息实体类。

    package com;
    
    import java.util.List;
    
    public class PageBean {
    
    
            private int page;//当前页
            
            private int pagesize;//页面数据条数
            
            private int indexpage=1;//首页
            
            private int endpage;//尾页
            
            private int count;//总数据条数
            
            private int pagenumber;//总页面数
            
            private List<Object> list;//得到的数据放入list集合中
            
            public int getPage() {
                return page;
            }
            public void setPage(int page) {
                this.page = page;
            }
            public int getPagesize() {
                return pagesize;
            }
            public void setPagesize(int pagesize) {
                this.pagesize = pagesize;
            }
            public int getIndexpage() {
                return indexpage;
            }
            public void setIndexpage(int indexpage) {
                this.indexpage = indexpage;
            }
            public int getEndpage() {
                
                return endpage;
            }
            public void setEndpage() {
                this.endpage=pagenumber;
            }
            public int getCount() {
                this.count=list.size();
                return count;
            }
            public void setCount() {
                this.count=list.size();
            }
            
            public int getPagenumber() {
                return pagenumber;
            }
            public void setPagenumber() {
                this.pagenumber=(count%pagesize==0)?count/pagesize:count/pagesize+1;
            }
            public List<Object> getList() {
                return list;
            }
            public void setList(List<Object> list) {
                this.list = list;
            }
            @Override
            public String toString() {
                return "PageBean [page=" + page + ", pagesize=" + pagesize + ", indexpage=" + indexpage + ", endpage="
                        + endpage + ", count=" + count + ", pagenumber=" + pagenumber + ", list=" + list + "]";
            }
    
        }

    2.接着创建一个接收前端页面传过来的值和返回值给前端的servlet

    package com;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    @SuppressWarnings("serial")
    public class FirstServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            
            
            
            // TODO Auto-generated method stub
            System.out.println("-----------------------------进入-------------------------");
            
            
            //定义一个对象集合,存储数据,并且创建了53条数据
            List<Object> list1=new ArrayList<Object>();
            for(int i=0;i<53;i++){
                User user=new User();
                user.setAge(11);
                user.setName("bobo"+i);
                list1.add(user);
            }
    
            
            //1.接受前端的要跳转到的目标页的页面值
            String str_page=    req.getParameter("page");
            
            
            
            
            //2.创建pageBean实例
            PageBean pagebean=new PageBean();
            pagebean.setList(list1);    //将53条数据的集合放到页面中
            pagebean.setCount();        //数据条数
            pagebean.setPagesize(5);    //每页大小
            pagebean.setPagenumber();//总页面数
            pagebean.setEndpage();    //伟业
            pagebean.setIndexpage(1);    //首页
    
                
            //3.定义一个集合,该集合存放目标页要显示的5条数据,最后一页不一定是5条
            List<Object> currentData=new ArrayList<Object>();
            //4.1.判断前端要跳转到的目标页的页面值,我这里初始化页面是从servlet进入,所以首次是一个空值。2.如果已经是首页,但用户的错误操作点击上一页
            //那目标也应该还是首页,
            if(str_page==null||Integer.parseInt(str_page)<1)
            {
                pagebean.setPage(1);
            
            }
            //如果为尾页,还点击下一页,那目标也还是在尾页
            else if(Integer.parseInt(str_page)>pagebean.getPagenumber()){
                pagebean.setPage(pagebean.getPagenumber());
            }
            //其他正常情况
            else{
                pagebean.setPage(Integer.parseInt(str_page));
            }
            
            //确定目标页显示的数据列表
            for(int index=(pagebean.getPage()-1)*pagebean.getPagesize();index<pagebean.getPage()*pagebean.getPagesize()&&index<pagebean.getCount();index++){
                User user=new User();
                currentData.add(list1.get(index));
            }
            
    //        System.out.println(pagebean.toString());
            HttpSession session=req.getSession();
            //    session.setAttribute("data", data);
                
    //            System.out.println(currentData.toString());
                //session.setAttribute("currentPage", currentPage);
            //传递当前页应取得的数据,和页面信息
              session.setAttribute("pageInfo", pagebean);
             session.setAttribute("userList", currentData);
            req.getRequestDispatcher("first.jsp").forward(req, resp);
        }
        
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // TODO Auto-generated method stub
        doGet(req,resp);
    
    }
        }

    3.最后,写jsp代码

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"
       import="java.util.*" 
       import="com.User"
       import="com.PageBean"%>
        
        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
     <%  List<User> userList=(List<User>)session.getAttribute("userList");
             request.setAttribute("userList",userList);
             PageBean pageBean=(PageBean)session.getAttribute("pageInfo");
              request.setAttribute("pageBean",pageBean);
         %>  
    <!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>
    <script type=“text/javascript" src="jquery-1.4.3.min.js"></script>
    <script type="text/javascript" src="first.js"></script>
    </head>
    <body>
    <div id="content_right">
                            <br />
                            <br />
    
                            <div class="btwz">
                                人员列表
                            </div>
                            <br>
                            <form name="form1" action="Staff_InfoServlet" method="post">
                                <table cellspacing="1" class="table">
                                    <tr class="table_header">
                                        <td valign="middle" align="left">
                                            姓名
                                        </td>
                                        <td valign="middle" align="left">
                                            年龄
                                        </td>
                                     
                                    </tr>
                                    <c:forEach items="${userList}" var="list">
                                    <tr class="row2" onMouseOver="this.className='row1'"
                                        onMouseOut="this.className='row2'">
                                        <td valign="middle" align="left">
                                            ${list.name}
                                        </td>
                                        <td valign="middle" align="left">
                                            ${list.age}
                                        </td>
                                  </tr>
                                 </c:forEach>
                                 
                                </table>
                            </form>
                           
                       
    
                            <p class="paging">
                                <a href="/Test/First.action?page=${pageBean.indexpage}">首页</a>
                                <a href="/Test/First.action?page=${pageBean.page-1}">    &lt; 上一页 </a>
                                <strong>第${pageBean.page}页/共${pageBean.pagenumber}页</strong>
                                <a href="/Test/First.action?page=${pageBean.page+1}">下一页 &gt;</a>
                              
                            </p>
                            <br />
                            <br />
                        </div>
                    </div>
                </div>
    </body>
    </html>

      注释已经很详细了,基本上很明了。我也不做过多的赘述了。以后有发现再来。

  • 相关阅读:
    【Vegas原创】mysql更改用户密码之无敌方法
    【Vegas原创】Xcopy屡试不爽
    【Vegas原创】ctrl shift无法切换输入法的解决方法
    【Vegas原创】将SQLServer表、视图、存储过程的所有者批量改为dbo的处理方法
    【Vegas原创】SQL Server2005应急备机切换步骤 生产机正常
    【Vegas原创】SQLServer 2000 企业管理器展开数据库列表错误的解决方法
    【Vegas原创】win7下打开telnet服务
    【Vegas原创】Windows 2003下CACTI的安装及配置
    【Vegas原创】SecureCRT个性化设置
    Mathematica实现微分算子功能
  • 原文地址:https://www.cnblogs.com/zuoluwo/p/11552904.html
Copyright © 2020-2023  润新知