仿oschina分页实现

PageUtil 
package zh.util;
import java.util.List;
public class PageUtil {
 
 public int currentPage = 1; //当前页
 
 public int totalCount = 0; //总条数
 
 public int pageSize = 10; //每页数据条数
 
 public int pageWidth = 9; //分页工具条显示多少个页按钮
 
 public int totalPage = 1; //总页数
 
 public List list;//数据列
 
 public String pging = "";
 
// public PageUtil(String currentPage,String totalCount,String href,List list)
// {
//  this.currentPage = Integer.valueOf(currentPage);
//  this.totalCount = Integer.valueOf(totalCount);
//  this.totalPage = this.totalCount / this.pageSize;
//  if(this.totalCount % this.pageSize != 0)
//   this.totalPage = this.totalPage+1;
//  this.list = list;
//  
//  //生成分页条
//  StringBuffer sb_Tbr = new StringBuffer();
//  //上一页
//  if(this.currentPage > 1)
//  {
//   sb_Tbr.append("<li ><a href=\""+href+"?p="+(this.currentPage-1)+"\" >上一页<span class=\"sr-only\">(current)</span></a></li>");
//  }
//  
//  //第一页
//  if(this.currentPage == 1)
//  {
//   sb_Tbr.append("<li class=\"active\" ><a href=\""+href+"?p=1\" >1</a></li>");
//  }else{
//   sb_Tbr.append("<li ><a href=\""+href+"?p=1\" >1</a></li>");
//  }
//  
//  int startPage = 2,endPage = pageWidth;
//  if(this.currentPage >= pageWidth-3)
//  {
//   startPage = this.currentPage - 4;
//   endPage = this.currentPage + 3;
//  } 
//  
//  if(endPage >totalPage)
//  {
//   endPage = totalPage;
//  }
//  
//  for(int i = startPage ;i < endPage;i++)
//  {
//   if(i == this.currentPage)
//   {
//    sb_Tbr.append("<li class=\"active\" ><a href=\""+href+"?p="+i+"\" >"+i+"</a></li>");
//   }else{
//    sb_Tbr.append("<li ><a href=\""+href+"?p="+i+"\" >"+i+"</a></li>");
//   }
//  }
//  
//  //最后页
//  sb_Tbr.append("<li ><a href=\""+href+"?p="+(this.totalPage)+"\" >"+this.totalPage+"</a></li>");
//  //下一页
//  if(this.currentPage < this.totalPage)
//  {
//   sb_Tbr.append("<li ><a href=\""+href+"?p="+(this.currentPage+1)+"\" >下一页<span class=\"sr-only\">(current)</span></a></li>");
//  }
//  this.pging = sb_Tbr.toString();
//  System.out.println(this.pging);
//  
// }
 
 public PageUtil(String currentPage,String totalCount,String jsfn,List list)
 {
  this.currentPage = Integer.valueOf(currentPage);
  this.totalCount = Integer.valueOf(totalCount);
  this.totalPage = this.totalCount / this.pageSize;
  if(this.totalCount % this.pageSize != 0)
   this.totalPage = this.totalPage+1;
  this.list = list;
  
  //生成分页条
  StringBuffer sb_Tbr = new StringBuffer();
  //上一页
  if(this.currentPage > 1)
  {
   sb_Tbr.append("<li ><a href=\"javascript:"+jsfn+"("+(this.currentPage-1)+");\" >上一页<span class=\"sr-only\">(current)</span></a></li>");
  }
  
  //第一页
  if(this.currentPage == 1)
  {
   sb_Tbr.append("<li class=\"active\" ><a href=\"javascript:"+jsfn+"(1);\" >1</a></li>");
  }else{
   sb_Tbr.append("<li ><a href=\"javascript:"+jsfn+"(1);\" >1</a></li>");
  }
  
  int startPage = 2,endPage = pageWidth;
  if(this.currentPage >= pageWidth-3)
  {
   startPage = this.currentPage - 4;
   endPage = this.currentPage + 3;
  } 
  
  if(endPage >totalPage)
  {
   endPage = totalPage;
  }
  
  for(int i = startPage ;i < endPage;i++)
  {
   if(i == this.currentPage)
   {
    sb_Tbr.append("<li class=\"active\" ><a href=\"javascript:"+jsfn+"("+i+");\" >"+i+"</a></li>");
   }else{
    sb_Tbr.append("<li ><a href=\"javascript:"+jsfn+"("+i+");\" >"+i+"</a></li>");
   }
  }
  
  //最后页
  sb_Tbr.append("<li ><a href=\"javascript:"+jsfn+"("+(this.totalPage)+");\" >"+this.totalPage+"</a></li>");
  //下一页
  if(this.currentPage < this.totalPage)
  {
   sb_Tbr.append("<li ><a href=\"javascript:"+jsfn+"("+(this.currentPage+1)+");\" >下一页<span class=\"sr-only\">(current)</span></a></li>");
  }
  this.pging = sb_Tbr.toString();
  System.out.println(this.pging);
  
 }
 
 public int getCurrentPage() {
  return currentPage;
 }
 
 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }
 
 public int getTotalCount() {
  return totalCount;
 }
 
 public void setTotalCount(int totalCount) {
  this.totalCount = totalCount;
 }
 
 public int getPageSize() {
  return pageSize;
 }
 
 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }
 
 public int getPageWidth() {
  return pageWidth;
 }
 
 public void setPageWidth(int pageWidth) {
  this.pageWidth = pageWidth;
 }
 
 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 String getPging() {
  return pging;
 }
 
 public void setPging(String pging) {
  this.pging = pging;
 }
 
 public static void main(String[] args) {
  
 }
 
 
}

package zh.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import zh.util.PageUtil;
public class ListServlet extends HttpServlet {
  
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String p = request.getParameter("p");
  if(p == null)
  {
   p = "1";
  }
  String totalCount = "201";
  String jsfn = request.getParameter("jsfn");
  System.out.println(jsfn);
  List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
  PageUtil pageUtil = new PageUtil(p,totalCount,jsfn,list);
  request.setAttribute("pageUtil",pageUtil);
  request.getRequestDispatcher("/list.jsp").forward(request, response);
 }
  
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request,response);
   
 }
}

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
 List<Map<String,Object>> lst = new ArrayList();
 for(int i = 0;i<50;i++)
 {
  lst.add(new HashMap());
 }  
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="<%=basePath%>">
<title>BootStrap实例 列表</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="BootStrap实例 列表">
<meta http-equiv="description" content="BootStrap实例 列表">
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
  
</style>
</head>
<body>
 <div>
   <div>
     <form action="servlet/List" method="post" name="list_nform" id="list_iform" >
      <input type="hidden" id="currentPage" name="p" value="${currentPage}" />
      <input type="hidden" name="jsfn" value="jsfn" />
     </form>
   <div>
        <table class="table table-bordered">
          <thead>
            <tr>
              <th>序号</th>
              <th>姓名</th>
              <th>性别</th>
              <th>年龄</th>
              <th>职业</th>
              <th>操作</th>
            </tr>
          </thead>
          <tbody>
          <% for(int i=0;i<10;i++){ %>
            <tr>
              <th scope="row"><%=i+1%></th>
              <td>张三</td>
              <td>男</td>
              <td>23</td>
              <td>程序员</td>
              <td>
               <div>
                <a class="btn btn-info btn-xs" href="#" >查看</a>
                <a class="btn btn-primary btn-xs" href="#" >修改</a>
                <a class="btn btn-danger btn-xs" href="#" >删除</a>
               </div>
              </td>
            </tr> 
            <%} %>
          </tbody>
        </table>
        <ul >
        ${pageUtil.pging}
        </ul>
        <script type="text/javascript">
          function jsfn(currentPage)
          {
           document.getElementById("currentPage").value = currentPage;
           document.list_nform.submit();
          }
        </script>
        <!-- 
     <ul >
      <li><a href="#" >上一页<span>(current)</span> </a></li>
      <li><a href="#" >1</a></li>
      <li ><a href="#" >2</a></li>
      <li ><a href="#" >3</a></li>
      <li ><a href="#" >下一页</a></li>
     </ul>
      -->
      </div>
     </div>
    </div>
 
 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
 <script type="text/javascript">
 </script> 
</body>
</html>

<servlet>
    <servlet-name>List</servlet-name>
    <servlet-class>zh.servlet.ListServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>List</servlet-name>
    <url-pattern>/servlet/List</url-pattern>
  </servlet-mapping>

你可能感兴趣的:(java,分页,bootstrap)