文档章节

仿oschina分页实现

无知的小孩
 无知的小孩
发布于 2015/07/22 18:32
字数 968
阅读 20
收藏 0
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>

© 著作权归作者所有

无知的小孩
粉丝 1
博文 70
码字总数 19034
作品 0
贵阳
后端工程师
私信 提问
box-shadow属性的使用方法

语法:box-shadow:length length length color 其中,前面三个length分别指阴影离开文字的横向距离、纵向距离和阴影的模糊半径,color 指阴影的颜色。 1、三个值都为正数 2、模糊半径为0时 ...

拉普拉斯婷
2016/08/17
9
0
贵站的分页很有意思,哪个来讲讲怎么实现

这个 是仿百度分页,大家那个来写下这个网站分页的实现

周睿
2010/01/22
525
1
【深入浅出MyBatis系列七】分页插件

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/24
1K
1
分页逻辑代码

实现了如下图的分页效果 思路:生成哪些页码,例如1-6页,2-7页,是由后台控制生成的。 假设我们决定生成的分页条,上面有 9 个超链接供点击。 并且我们的分页信息包含总页数,当前为第几页等...

iron_will
2016/06/07
52
0
【深入浅出MyBatis系列九】改造Cache插件

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/25
842
0

没有更多内容

加载失败,请刷新页面

加载更多

将key=value转成对象形式

var params = {};testParan.split(',').forEach(item =>{ var tmpArr = item.split('='); Vue.set(params, tmpArr[0].trim(), tmpArr[1].trim());});Vue.set(params, 'sql', sql);......

沉迷代码我爱学习
23分钟前
4
0
什么是分立器件

  分立器件被广泛应用到消费电子、计算机及外设、网络通信,汽车电子、led显示屏等领域。   半导体产业中有两大分支:集成电路和分立器件。   集成电路   集成电路(integrated circ...

仙溪
34分钟前
5
0
kibana rpm安装

https://www.elastic.co/guide/en/kibana/6.2/rpm.html 下载对应的版本wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm 安装 rpm -ivh kibana-6.2.4-x86_64......

看的最远的地方
37分钟前
3
0
高防CDN相比较于高防服务器,为何更加稳定?

对于DDoS攻击,那些已经做过网站、平台的人应该知道,DDoS攻击是非常可怕的,因为这种攻击本质上不能防御,或者DDoS攻击只能被减轻,不能完全消除。DDoS,意思是“分布式拒绝服务”。它是一种...

云漫网络Ruan
37分钟前
4
0
线程SuspendThread() ResumeThread()的使用

SuspendThread():挂起线程 If the function succeeds, the return value is the thread's previous suspend count; otherwise, it is (DWORD) -1. ResumeThread():启动线程 If the functio......

rainbowcode
38分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部