分页类

这个适用情况:

适用于前端页面已提供分页按钮样式的情况

分页规则:

首页,尾页,上页,下页 这四个按钮必定出现,中间分页动态生成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代码分页的更多相关文章

  1. Java代码实现 增删查 + 分页——实习第四天

    今天项目内容已经开始了,并且已经完成好多基本操作,今天就开始总结今天学习到的内容,和我遇到的问题,以及分析这其中的原因. 内容模块: 1:Java代码实现对数据库的增删查: 2:分页且获取页面信息: ...

  2. 亿级别记录的mongodb分页查询java代码实现

    1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...

  3. JAVA 代码开发规范

    一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改 ...

  4. java 代码

    java 里的 pandas tablesaw DataFrame 再有就是 spark 了 java 代码规范 Java8特性详解 lambda表达式 Stream Sonar 规则检测 sprin ...

  5. Java代码解决ElasticSearch的Result window is too large问题

    调用ElasticSearch做分页查询时报错: QueryPhaseExecutionException[Result window is too large, from + size must b ...

  6. 分享知识-快乐自己:java代码 操作 solr

    POM 文件: <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> < ...

  7. elasticsearch查询所有数据restful api以及java代码实现

    原文:http://blog.java1234.com/blog/articles/366.html restful api实现如下: get http://192.168.1.111:9200/fi ...

  8. Java和操作系统交互(Java 代码是怎么执行)(转)

    结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原 ...

  9. 操作系统 | 结合 CPU 理解一行 Java 代码是怎么执行的

    根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单 ...

随机推荐

  1. Chrome Ajax 跨域设置

    一.前言 web 开发中 Ajax 是十分常见的技术,但是在前后端使用接口对接的调试过程中不可避免会碰到跨域问题.今天我给大家介绍一个十分简单有效的方法. 跨域经典错误 二.Chrome 跨域设置 首 ...

  2. WebApplication与WebSite区别

    1. WebApplication(Web应用程序)和WebSite(网站)的区别:WebSite是为了兼容从ASP转过来的开发人员的习惯而存在的,用起来简单,例如:不需要创建命名控件.C#代码修改以 ...

  3. Vue入门---事件与方法详解

    一. vue方法实现 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  4. BZOJ 3516 国王奇遇记加强版(乱推)

    题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到 ...

  5. 常用的sublime text 3插件(很爽哦)

    个人比较懒,平时喜欢用webstorm,但是因为webstorm打开实在太慢了,并且太看设备,所以本人编辑简单的文件依然会选择使用sublime,虽然网上有很多关于此类插件的分享了,但是感觉都是片段, ...

  6. Django从入门到放弃

    第一篇: web应用 HTTP协议 web框架 第二篇:Djangon简介 第三篇:路由控制 第四篇:视图层 第五篇:模版层 第六篇:模型层:单表操作,多表操作,常用(非常用)字段和参数,Django ...

  7. Ryuji doesn't want to study 2018 徐州赛区网络预赛

    题意: 1.区间求 a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r](L is the length of [ l, r ] that equals to r - l + 1) ...

  8. 【BZOJ1970】[AHOI2005]矿藏编码(模拟)

    [BZOJ1970][AHOI2005]矿藏编码(模拟) 题面 BZOJ 洛谷 题解 随便写个高精度模拟一下就完了. #include<iostream> #include<cstd ...

  9. 【BZOJ1898】[ZJOI2005]沼泽鳄鱼(矩阵快速幂,动态规划)

    [BZOJ1898][ZJOI2005]沼泽鳄鱼(矩阵快速幂,动态规划) 题面 BZOJ 洛谷 题解 先吐槽,说好了的鳄鱼呢,题面里面全是食人鱼 看到数据范围一眼想到矩乘. 先不考虑食人鱼的问题,直接 ...

  10. 【CF1077F2】Pictures with Kittens 单调队列+dp

    题目大意:给定一个长度为 N 的序列,点有点权,从序列中选出恰好 X 个数,并且保证任意连续的 K 个数中均有一个被选中,求选出的点权最大是多少. 题解:此题可以作为 烽火传递+ 来处理,只不过在烽火 ...