Java 开发工具类Pager
来源:互联网 发布:大数据调研报告 编辑:程序博客网 时间:2024/05/16 06:50
- import java.util.ArrayList;
- import java.util.List;
- /**分页工具类
- * @author user
- *
- */
- public class Pager {
- private static final int DEFAULT_PAGESIZE=10;//默认分页的每页显示的条数
- private static final int DEFAULT_PAGENUM=5;//默显示页码的数量
- private int pagerIndex;//当前的页码
- private int pagerCount;//总页码
- private int pageSize;//每页显示的条数
- private int recordCount;//总记录数
- private int offsetNum;//显示页码数量的偏移量
- private int pageNum;//显示页码的数量
- public Pager(){}
- /**构造函数,初始化分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- */
- public Pager(int pageIndex,int recordCount,int pageSize){
- this.pagerIndex=pageIndex;
- this.recordCount=recordCount;
- this.pageSize=pageSize<1?Pager.DEFAULT_PAGESIZE:pageSize;
- this.pagerCount=(this.recordCount-1)/pageSize+1;
- if(this.pagerIndex<1) this.pagerIndex=1;
- if(this.pagerIndex>pagerCount) this.pagerIndex=this.pagerCount;
- this.setPageNum(Pager.DEFAULT_PAGENUM);
- }
- /**构造函数,初始化分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- * @param pagerNum 每页显示的条数
- */
- public Pager(int pageIndex,int recordCount,int pageSize,int pagerNum){
- this(pageIndex,recordCount,pageSize);
- this.setPageNum(pagerNum);
- }
- /**设置分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- */
- public void setPagerInfo(int pageIndex,int recordCount,int pageSize){
- this.pagerIndex=pageIndex;
- this.recordCount=recordCount;
- this.pageSize=pageSize<1?Pager.DEFAULT_PAGESIZE:pageSize;
- this.pagerCount=(this.recordCount-1)/pageSize+1;
- if(this.pagerIndex<1) this.pagerIndex=1;
- if(this.pagerIndex>pagerCount) this.pagerIndex=this.pagerCount;
- }
- /**得到上一页
- * @return
- */
- public int getProvPageIndex(){
- return (this.pagerIndex-1)<1?1:this.pagerIndex-1;
- }
- /**得到下一页
- * @return
- */
- public int getNextPageIndex(){
- return (this.pagerIndex+1)>this.pagerCount?pagerCount:this.pagerIndex+1;
- }
- public int getPagerIndex() {
- return pagerIndex;
- }
- public int getPagerCount() {
- return pagerCount;
- }
- public int getPageSize() {
- return pageSize;
- }
- public int getRecordCount() {
- return recordCount;
- }
- /**设置显示页码的数量
- * @param pageNum 显示页码的数量
- */
- private void setPageNum(int pageNum){
- pageNum=pageNum%2==0?pageNum++:pageNum;//页数目录的数量只能为奇数
- pageNum=pageNum<1?Pager.DEFAULT_PAGENUM:pageNum;//如果显示的页码数量小于1,则设置为默认值
- pageNum=pageNum>this.pagerCount?(this.pagerCount%2==0?this.pagerCount-1:this.pagerCount):pageNum;//如果显示页码的数量大于总页数,则邓等于页码德总页数
- this.offsetNum=(pageNum-1)/2;
- this.pageNum=pageNum;
- }
- /**分页目录显示样式
- * @return
- */
- public List<Integer> getShowPageStyle(){
- List<Integer> list=new ArrayList<Integer>();
- //当分页的总数量小于等于显示分页的数量
- if(this.pagerCount<=this.pageNum){
- for (int i = 1; i <= this.pagerCount; i++){
- list.add(i);
- }
- return list;
- }
- //显示分页数量的偏移量大于当前的页码
- if(this.offsetNum>=this.pagerIndex){
- for (int i = 1; i <= this.pageNum; i++) {
- list.add(i);
- }
- return list;
- }
- //当前的页码在最后几页且在偏移量范围之内
- if(this.pagerIndex>=this.pagerCount-this.offsetNum){
- for (int i = pagerCount-this.pageNum+1; i <= this.pagerCount; i++) {
- list.add(i);
- }
- return list;
- }
- //普通情况
- for (int i = this.pagerIndex-offsetNum; i <=this.pagerIndex+this.offsetNum; i++) {
- list.add(i);
- }
- return list;
- }
- public static void main(String[] args) {
- Pager pager=new Pager(5,100,10,5);
- List<Integer> list=pager.getShowPageStyle();
- for (Integer integer : list) {
- System.out.println(integer);
- System.out.println("================");
- }
- }
- }
0 0
- Java 开发工具类Pager
- 分页工具类Pager
- java分页工具 pager-taglib
- pager-taglib分页工具
- JAVA 分页类 Page Pager page
- Pager类
- java分页 pager-taglib
- java分页 pager-taglib
- Java开发工具类
- JAVA开发工具类
- 分页类Pager
- 分页类pager
- pager
- Pager
- JSP分页工具Pager-taglib使用总结
- [Java]java开发工具
- Pear的Pager分页类
- SubList分页-010-Pager类
- Android 标题
- F5前的事件调用beforeunload和unload
- Java基本类型变量和包装类之间转换
- 签名与认证
- android studio创建代码库分上传到jcenter,使大家一行代码引用
- Java 开发工具类Pager
- PAT 1003. 我要通过!(20) java实现
- hibernate 实体注解在主键生成策略方面遇到的问题
- 如何向编辑控件中添加文本
- 元宵节作业
- GPIO及中断API函数
- android 5.0 NFC支持
- java相对于c和c++在内存管理上怎样提高了开发效率
- HDU4506之快速幂取模理解