jsp页面数据分页模仿百度分页效果

Posted 风起时只有我在

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp页面数据分页模仿百度分页效果相关的知识,希望对你有一定的参考价值。

<%@page import="web09.shop.DBUtil"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>数据分页</title>
    <style type="text/css">
        .page a{
            min-width: 34px;
            height: 34px;
            border: 1px solid #e1e2e3;
            cursor: pointer;
            display:block;
            float: left;
            text-decoration: none;
            text-align:center;
            line-height: 34px;            
        }
        
        .page a:HOVER {
            background: #f2f8ff;
            border: 1px solid #38f ;
        }
        .page a.prev{
            width:50px;
        }
        .page span{
            width: 34px;
            height: 34px;
            border: 1px solid transparent;
            cursor: pointer;
            display:block;
            float: left;
            text-decoration: none;
            text-align:center;
            line-height: 34px;
            cursor: default;
        }
    </style>
</head>

<body>
<table class="tt" border="1" align="center" width="80%" cellpadding="10">
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>专业</th>
    </tr>
    <%
    DBUtil dbutil=new DBUtil();
    Connection conn=dbutil.getCon();
    //Connection conn = new DBUtil().getCon();
    PreparedStatement pstmt1 = conn.prepareStatement("select count(*) from student");
    ResultSet rs1 = pstmt1.executeQuery();
    rs1.next();
    int recordCount = rs1.getInt(1);     //记录总数
    int pageSize = 10;                    //每页记录数
    int start=1;                        //显示开始页
    int end=10;                            //显示结束页
    int pageCount = recordCount%pageSize==0 ? recordCount/pageSize : recordCount/pageSize+1; 
    int currPage = request.getParameter("p")==null ? 1 : Integer.parseInt(request.getParameter("p"));
    
    currPage = currPage<1 ? 1 : currPage;
    currPage = currPage>pageCount ? pageCount : currPage;
    
    PreparedStatement pst = conn.prepareStatement("select * from student limit ?,?");
    pst.setInt(1,currPage*pageSize-pageSize);
    pst.setInt(2,pageSize);
    ResultSet rs = pst.executeQuery();
    
    while(rs.next()){
    %>
    <tr align="center">
    <td><%=rs.getInt(1) %></td>
    <td><%=rs.getString(2) %></td>
    <td><%=rs.getInt("age") %></td>
    <td><%=rs.getString(4) %></td>
    </tr>
    <%
    }
    %>
    <tr>
          <th colspan="4" class="page">
              <% 
                  out.print(String.format("<a class=\"prev\" href=\"?p=%d\">首页</a>",1));
                  if(currPage>=7){
                      start=currPage-5;
                      end=currPage+4;
                  }
                  if(start>(pageCount-10)){
                      start=pageCount-9;
                  }
                  if(currPage>1){
                      out.print(String.format("<a class=\"prev\" href=\"?p=%d\">上一页</a>",currPage-1));
                  }
                  
                  for(int i=start;i<=end;i++){
                      if(i>pageCount) break;
                      String pageinfo=String.format("<a href=\"?p=%d\">%d</a>",i,i);
                      if(i==currPage){
                          pageinfo=String.format("<span>%d</span>",i);
                      }
                      out.print(pageinfo);
                  }
                  
                  if(currPage<=pageCount){
                      out.print(String.format("<a class=\"prev\" href=\"?p=%d\">下一页</a>",currPage+1));
                  }
                  
                  out.print(String.format("<a class=\"prev\" href=\"?p=%d\">尾页</a>",pageCount)); 
              %>
          </th>
      </tr>
</table>
</body>
</html>
请根据自己的项目、包名修改

 


以上是关于jsp页面数据分页模仿百度分页效果的主要内容,如果未能解决你的问题,请参考以下文章

JSP页面分页显示数据

实现百度分页效果的工具类

关于Java的分页算法,急!

分页,条件查询

springMVC怎么实现分页显示啊?就是这种效果!

模仿百度的分页器