Java Web的分页工具类
最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的。也没有去细看,现在遇到这个状况。
就整理一下思路,自己写了一个分页的工具类。写的不好之处,还望斧正。
下面是我的代码:
PageUtil.java
1 package util; 2 3 import java.util.Map; 4 5 /** 6 * 分页工具类 7 * @author lyh 8 * 9 */ 10 public class PageUtil { 11 private int total; //总数 12 private int element; //每夜显示数 13 private String url; //访问的url 14 private Map<String,Object> keys; //记忆参数 15 private int p; //当前页数 16 private int page; //总页数 17 18 /** 19 * 构造传参数 20 * @param total 21 * @param element 22 * @param url 23 * @param keys 24 * @param p 25 */ 26 public PageUtil(int total,int element,String url,Map<String,Object> keys,int p){ 27 this.total = total; 28 this.element = element; 29 this.url = url; 30 this.keys = keys; 31 this.p = p; 32 if(this.total != 0 && this.total%this.element == 0){ 33 this.page = this.total/this.element; 34 }else{ 35 this.page = this.total/this.element+1; 36 } 37 } 38 39 /** 40 * 拼接分页访问的url 41 * @param p 42 * @param keys 43 * @return 拼接好的带参数url 44 */ 45 private String createFullUrl(int p,Map<String,Object> keys){ 46 StringBuffer buf = new StringBuffer(this.url); 47 buf.append("?p="+p); 48 49 if(keys != null){ 50 buf.append(this.createParamUrl(keys)); 51 } 52 return buf.toString(); 53 } 54 55 /** 56 * 参数的url形式("&dhgks=12&...") 57 * @param keys 58 * @return 拼接好的参数url 59 */ 60 private String createParamUrl(Map<String,Object> keys){ 61 StringBuffer buf = new StringBuffer(); 62 63 if(keys != null){ 64 for(String key : keys.keySet()){ 65 buf.append("&"+key+"="+keys.get(key)); 66 } 67 return buf.toString(); 68 }else{ 69 return ""; 70 } 71 72 } 73 74 /** 75 * 生成分页代码 76 * @return 77 */ 78 public String showPage(){ 79 StringBuffer buf = new StringBuffer("<div class=\"footpage\">"); 80 81 if(this.page<=5){ 82 //5页显示 83 for(int i=1;i<=this.page;i++){ 84 if(i==this.p){ 85 buf.append("<a href=\""+this.createFullUrl(i, this.keys)+"\" class=\"hidepage\">"+i+"</a>"); 86 }else{ 87 buf.append("<a href=\""+this.createFullUrl(i, this.keys)+"\" class=\"viewpage\">"+i+"</a>"); 88 } 89 } 90 }else{ 91 //超出5页显示 92 if(this.p==1){ 93 //如果当前页是第一页的情况 94 for(int i=1;i<=5;i++){ 95 if(i==this.p){ 96 buf.append("<a href=\""+this.createFullUrl(i, this.keys)+"\" class=\"hidepage\">"+i+"</a>"); 97 }else{ 98 buf.append("<a href=\""+this.createFullUrl(i, this.keys)+"\" class=\"viewpage\">"+i+"</a>"); 99 } 100 } 101 //超过5页部分省略 102 buf.append("<span>...</span>"); 103 }else{ 104 //当前页不是第一页 105 //显示首页 106 buf.append("<a href=\""+this.createFullUrl(1, this.keys)+"\" class=\"viewpage\">首页</a>"); 107 buf.append("<span>...</span>"); 108 int cou =0; 109 110 //判断五页是否超出范围 111 if((this.p+5)>this.page){ 112 cou = this.page; 113 }else{ 114 cou = this.p+5; 115 } 116 117 for(int j =this.p;j<cou;j++){ 118 if(j==this.p){ 119 buf.append("<a href=\""+this.createFullUrl(j, this.keys)+"\" class=\"hidepage\">"+j+"</a>"); 120 }else{ 121 buf.append("<a href=\""+this.createFullUrl(j, this.keys)+"\" class=\"viewpage\">"+j+"</a>"); 122 } 123 } 124 125 //判断是否还有页需要省略 126 if(cou != this.page){ 127 buf.append("<span>...</span>"); 128 } 129 } 130 //显示尾页 131 buf.append("<a href=\""+this.createFullUrl(this.page, this.keys)+"\" class=\"viewpage\">尾页</a>"); 132 133 } 134 135 buf.append("到<input type=\"text\" id=\"go\"/>页<button οnclick=\"javascript:if(document.getElementById('go').value.match(/^([0-9])*$/)) {window.location='"+this.url+"?p=__PAGE__"+this.createParamUrl(this.keys)+"'.replace('__PAGE__',document.getElementById('go').value);} else {return false;}\">确定</button>"); 136 buf.append("共"+this.page+"页"); 137 buf.append("</div>"); 138 return buf.toString(); 139 } 140 }
使用方法直接实例化一个PageUtil的对象就可以了,参数从构造方法传入。
转载于:https://www.cnblogs.com/chengxuyuanxiaoye/p/3895132.html
Java Web的分页工具类相关推荐
- ssm整合oracle分页,java实现ssm分页工具类及其使用方法
分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...
- java分页的工具类,java分页工具类
PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...
- java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...
- java手动分页工具类
开发中,碰到了一些奇葩的业务逻辑,无法使用框架自身的分页功能,想了很久最后还是决定自己手写一个分页工具类,以备后续参考和使用,下面直接上代码, /*** 手动分页类* @param datas* @p ...
- java项目常用的工具类
前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...
- 一个Java Web后台任务执行工具的设计与实现
一个Java Web后台任务执行工具的设计与实现 提到后台任务,最容易想到的恐怕就是Java 中的Timer或者大名鼎鼎的开源定时器Quartz,但是,从本质讲,他们都是定时器,以时间间隔严格的进行间 ...
- java图形验证码生成工具类
转载自 java图形验证码生成工具类 生成验证码效果 ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java ...
- PageUtils后端常用分页工具类
工具类代码 package com.john.test.utils;import java.util.List;/*** @Author jiang* @Version 1.0* 分页工具类*/ pu ...
- java图片缩放工具类,一个JAVA图形缩放处置工具类
一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...
最新文章
- C#访问远程主机资源的方法
- optee应用程序中malloc函数的原理介绍
- 技术动态 | 知识图谱上的实体链接
- VR究竟多奇幻?eSmart邀你共赴一场VR奇幻之旅!
- D1net阅闻:Google Analytics增AI自动化分析功能
- java程序性能优化_怎么做JAVA程序性能优化
- 云小课|聊一聊DRS的数据过滤特性
- 盗企鹅号发娱乐八卦稿60天收益7.5万元?腾讯回应了...
- python 迭代器的方法_python--魔法方法,属性和迭代器
- 剑指offer第二版(C++实现)
- 静态ip设置失败解决办法
- 高端啤酒正在失去年轻人
- Windows连接ssh时 Permissions for ‘.pem‘ are too open解决方法
- _EPROCESS结构简单了解!
- 如何打开一个嵌在PC端应用的web窗口的控制台?
- Microsoft office professional plus2010
- oracle++卸载grid,GRID卸载及重新安装
- Shell脚本编程入门
- 【Matlab系列】调频信号FM相干解调与非相干解调原理及其实现
- MySQL NOW() 是否包含夏令时
热门文章
- 创业负债累累 | 失败了的我还如何翻盘?是天台见! 我的故事还只是从这件事开始...
- 一个简单的BP神经网络matlab程序(附函数详解)
- 电脑任务栏跑到右边去了_手把手教你用U盘安装Win10系统?学会了再也不用去跑电脑店了...
- 零点起飞学php下载,零点起飞学PHP(附光盘)/零点起飞学编程
- 小分子php蛋白,如何研究小分子抑制蛋白降解途径? - 分子生物 - 小木虫 - 学术 科研 互动社区...
- matlab中cuda编程中分配grid和block dimension的时候的注意事项
- check whether edge in face indices.
- linux 修改php配置,PHP部署时的几个配置修改说明
- string类有可以调换方向的函数吗_关于String类的split()方法
- 推荐系统组队学习——WideDeep