java代码分页
分页类
这个适用情况:
适用于前端页面已提供分页按钮样式的情况
分页规则:
首页,尾页,上页,下页 这四个按钮必定出现,中间分页动态生成5个
如:首 上 2 3 4 5 6 下 尾

public class Pager {
//    public static void main(String args[]){
//        Pager p = new Pager();
//        String pstr = p.getInitPager(10,200,1);
//        System.err.println("pstr="+pstr);
//    }
//    private static int pageSize = 20;
    /*
    * @method 分页,默认显示5页
    * */
    public static String getInitPager(int pageSize,int totalCount,int curPage){
        curPage = (curPage == 0) ? 1:curPage;
        int totalPage = getPageCount(pageSize,totalCount);
        int p_pre = (curPage>1) ? curPage-1 : 1;//上一页
        int p_next = (curPage<totalCount) ? curPage+1 : totalCount;//下一页
        //分页首端 固定部分
        StringBuffer frontFixedPage = new StringBuffer();
        frontFixedPage.append("<ul class='pagination pull-right'><li><a href='javascript:fn_page(1)'>首</a></li>\n");
        frontFixedPage.append("<li><a href='javascript:fn_page("+p_pre+")'>上</a></li>\n");
        //分页末尾 固定部分
        StringBuffer tailFixedPage = new StringBuffer();
        tailFixedPage.append("<li><a href='javascript:fn_page("+p_next+")'>下</a></li>\n");
        tailFixedPage.append("<li><a href='javascript:fn_page("+totalPage+")'>尾</a></li>\n");
        //分页末尾统计 固定部分
        StringBuffer fianlFixedPage = new StringBuffer();
        fianlFixedPage.append("<li class='disabled'><a>页次:"+curPage+"/"+totalPage+"页 共"+totalCount+"条</a></li></ul>");
        //分页中间 变动部分
        StringBuffer midChangePage = new StringBuffer();
        if(totalPage <= 5 ){
            for(int i = 1; i <= totalPage; i++){
                String active = (curPage == i) ? "class='active'" : "";
                midChangePage.append("<li "+active+"><a href='javascript:fn_page("+i+")'>"+i+"</a></li>\n");
            }
        }else{
            //页数n>5的,显示页数n-2,n-1,n,n+1,n+2
            if(curPage > 2 && curPage <= totalPage - 2){
                for(int i = curPage-2; i <= curPage + 2; i++){
                    String active = (curPage == i) ? "class='active'" : "";
                    midChangePage.append("<li "+active+"><a href='javascript:fn_page("+i+")'>"+i+"</a></li>\n");
                }
            }
            //当前页<=2的,显示1,2,3,4,5
            else if(curPage<=2){
                for(int i = 1; i <= 5; i++){
                    String active = (curPage == i) ? "class='active'" : "";
                    midChangePage.append("<li "+active+"><a href='javascript:fn_page("+i+")'>"+i+"</a></li>\n");
                }
            }
            //当前页>末尾第二页的,显示n-4,n-3,n-2,n-1,n
            else if(curPage > totalPage - 2){
                for(int i = totalPage - 4; i <= totalPage; i++){
                    String active = (curPage == i) ? "class='active'" : "";
                    midChangePage.append("<li "+active+"><a href='javascript:fn_page("+i+")'>"+i+"</a></li>\n");
                }
            }
        }
        StringBuffer pageStr = new StringBuffer();
        pageStr.append(frontFixedPage);
        pageStr.append(midChangePage);
        pageStr.append(tailFixedPage);
        pageStr.append(fianlFixedPage);
        frontFixedPage = null;
        midChangePage = null;
        tailFixedPage = null;
        fianlFixedPage = null;
        return pageStr.toString();
    }
    /*
    * @method 计算总页数
    * */
    public static int getPageCount(int pageSize,int totalCount){
        int p = (int)Math.ceil((double)totalCount/pageSize);
        p = (p == 0) ? 1 : p;
        return p;
    }
/*<ul class='pagination pull-right'>
          <li>
            <a href='javascript:fn_page(1)'>首</a></li>
          <li>
            <a href='javascript:fn_page(1)'>上</a></li>
          <li class='active'>
            <a href='javascript:'>1</a></li>
          <li>
            <a href='javascript:fn_page(2)'>2</a></li>
          <li>
            <a href='javascript:fn_page(3)'>3</a></li>
          <li><a href='javascript:fn_page(2)'>下</a></li>
          <li><a href='javascript:fn_page(3)'>尾</a></li>
          <li class='disabled'>
            <a>页次:1/3页 共26条</a>
          </li>
    </ul>*/
}
java代码分页的更多相关文章
- Java代码实现 增删查 + 分页——实习第四天
		
今天项目内容已经开始了,并且已经完成好多基本操作,今天就开始总结今天学习到的内容,和我遇到的问题,以及分析这其中的原因. 内容模块: 1:Java代码实现对数据库的增删查: 2:分页且获取页面信息: ...
 - 亿级别记录的mongodb分页查询java代码实现
		
1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...
 - JAVA 代码开发规范
		
一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改 ...
 - java 代码
		
java 里的 pandas tablesaw DataFrame 再有就是 spark 了 java 代码规范 Java8特性详解 lambda表达式 Stream Sonar 规则检测 sprin ...
 - Java代码解决ElasticSearch的Result window is too large问题
		
调用ElasticSearch做分页查询时报错: QueryPhaseExecutionException[Result window is too large, from + size must b ...
 - 分享知识-快乐自己:java代码 操作 solr
		
POM 文件: <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> < ...
 - elasticsearch查询所有数据restful api以及java代码实现
		
原文:http://blog.java1234.com/blog/articles/366.html restful api实现如下: get http://192.168.1.111:9200/fi ...
 - Java和操作系统交互(Java 代码是怎么执行)(转)
		
结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原 ...
 - 操作系统 | 结合 CPU 理解一行 Java 代码是怎么执行的
		
根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单 ...
 
随机推荐
- 免费SSL证书(https网站)申请
			
如何拥有一个自己的免费的SSL证书,并且能够长期拥有.这篇文章让你找到可用的免费证书o(* ̄︶ ̄*)o 各厂商提供的免费SSL基本是Symantec(赛门铁克),申请一年,不支持通配符,有数量限制. ...
 - 利用Attribute和IErrorHandler处理WCF全局异常
			
在处理WCF异常的时候,有大概几种方式: 第一种是在配置文件中,将includeExceptionDetailInFaults设置为true <behavior name="servi ...
 - 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
			
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17290021 在http://blog.csdn.net/ns_code/article/ ...
 - c/c++ 函数说明以及技巧总结
			
1. memset函数: void *memset(void *s, int ch, size_t n); 函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size ...
 - 在Docker环境下部署高可用的Eureka注册中心
			
Eureka Server的同步遵循着一个非常简单的原则,只要有一条边将节点连接,就可以进行信息传播和同步 由于Eureka Server进行相互注册的方式来实现高可用的部署,所以我们只需要将Eure ...
 - BZOJ2303 APIO2011方格染色(并查集)
			
比较难想到的是将题目中的要求看做异或.那么有ai,j^ai+1,j^ai,j+1^ai+1,j+1=1.瞎化一化可以大胆猜想得到a1,1^a1,j^ai,1^ai,j=(i-1)*(j-1)& ...
 - sniffer 和 debug flow
			
sniffer 和 debug flow sniffer 和 debug flow 复制模板,直接修改IP即可使用: diagnose sys session filter clear diagnos ...
 - 【刷题】LOJ 6005 「网络流 24 题」最长递增子序列
			
题目描述 给定正整数序列 \(x_1 \sim x_n\) ,以下递增子序列均为非严格递增. 计算其最长递增子序列的长度 \(s\) . 计算从给定的序列中最多可取出多少个长度为 \(s\) 的递增子 ...
 - 【BZOJ1024】[SCOI2009]生日快乐(搜索)
			
[BZOJ1024][SCOI2009]生日快乐(搜索) 题面 BZOJ 洛谷 题解 看到这个数据范围就感觉是爆搜.我们爆搜左右分成多少块,这样子左右的面积已知,再枚举一下横着切还是竖着切,这样子就可 ...
 - java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
			
需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...