分页实现-----首页、上一页、下一页、最后一页

来源:互联网 发布:大数据时代的风险管控 编辑:程序博客网 时间:2024/04/27 22:38

分页实现

例:

首页、上一页、下一页、最后一页

Bean中的代码

public class doPage {

       //定义当前页

       private int nowPage;

       //定义每页显示的条数

       private int pageSize;

       //定义一个根据上述条件查询出的数据List

       @SuppressWarnings("unchecked")

       private List list;

       //定义一个总的页数

       private int totalPage;

       public int getTotalPage() {

              return totalPage;

       }

       public void setTotalPage(int totalPage) {

              this.totalPage = totalPage;

       }

       public List getList() {

              return list;

       }

       public void setList(List list) {

              this.list = list;

       }

       public int getNowPage() {

              return nowPage;

       }

       public void setNowPage(int nowPage) {

              this.nowPage = nowPage;

       }

       public int getPageSize() {

              return pageSize;

       }

       public void setPageSize(int pageSize) {

              this.pageSize = pageSize;

       }

       Dao中的代码

       //获得总的页数

       public int doTotalPage(doPage dopage) {

              int totalPage=0;

              con = ConnectionFactory.getConnection();

              try {

                     ps=con.prepareStatement("select count(*) from news");

                     rs=ps.executeQuery();

                     if (rs.next()) {

                       //获得总页数;总页数=上取整(总记录/每页大小)

                       //  System.out.println("总记录:"+rs.getInt(1)+"每页大小:"+dopage.getPageSize()+"页数:"+rs.getInt(1)/Double.parseDouble(dopage.getPageSize()+""));

                 totalPage=(int) Math.ceil(rs.getInt(1)/Double.parseDouble(dopage.getPageSize()+""));

                     }

              } catch (SQLException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

              } finally {

                     DbClose.close(rs, ps, con);

              }    

              return totalPage;

       }

//查询所有的数据

public doPage doFindAll(doPage dopage) {

ArrayList userlist=new ArrayList();

con= ConnectionFactory.getConnection();

try {

String sql="select * from news limit "+(dopage.getNowPage()-1)*dopage.getPageSize()+"" +

                                   " , "+dopage.getPageSize();

                     ps = con.prepareStatement(sql);

                     rs = ps.executeQuery();

                     while (rs.next()) {

                            //封装user对象

                            News new1=new News();

                      new1.setNid(rs.getInt("nid"));

                      new1.setNews(rs.getString("news"));

                      new1.setClasses(rs.getString("classes"));

                      new1.setDims(rs.getString("dims"));

                         //向数据集合中添加元素

                      userlist.add(new1);

                     }

                     //将查询的结果封装到doPage

                     dopage.setList(userlist);

              } catch (SQLException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

              } finally {

                     DbClose.close(rs, ps, con);

              }

              return dopage;

       }

Servlet中的代码

// 查询所有的数据,并分页显示

              if (biaoshi.equals("list")) {

                     InsertNews it = new InsertNews();

                     // 封装分页查询的参数的对象doPage

                     doPage dopage = new doPage();

                     dopage.setNowPage(Integer.parseInt(pageNo));

                     dopage.setPageSize(4);

                     // 执行查询操作,参数是doPage

                     dopage = it.doFindAll(dopage);

                     // 得到总的页数

                     dopage.setTotalPage(it.doTotalPage(dopage));

                     // 将返回的结果,放到request中到jsp中显示

                     request.setAttribute("doPage", dopage);

                     // 页面跳转

                     this.gotoPage("Comlist.jsp", request, response);

              }

       }

       // 跳转页面方法

       private void gotoPage(String URL, HttpServletRequest request,

                     HttpServletResponse response) throws ServletException, IOException {

              RequestDispatcher rd;

              rd = request.getRequestDispatcher(URL);

              rd.forward(request, response);

       }

       public void init() throws ServletException {

       }

Jsp中的代码

<DIV class=Extra>

       <a href="InfoComManage?biaoshi=list&page=1">首页</a>

       <%if (dopage.getNowPage() - 1 > 0) {%>

<SPAN class=Unable>

<a 

href="InfoComManage?biaoshi=list&page=<%=(dopage.getNowPage() - 1)%>">上一页

       </a>

</SPAN>

<%}

if (dopage.getNowPage() + 1 <= dopage.getTotalPage()) {

%>

<a

    href="InfoComManage?biaoshi=list&page=<%=(dopage.getNowPage() + 1)%>">下一页</a>

<%}%>

       <a                                              href="InfoComManage?biaoshi=list&page=<%=dopage.getTotalPage()%>">末页

</a>

</DIV>

 

原创粉丝点击