java 页码计算_分页之页面页码列表计算
分页之页面页码列表计算
我们通过看百度的分页可以发现以下规律:
1.最多显示10个页码;
2.当前页在页码中的位置定为六;
所以只需要当前页码来定出来页码列表,定下来页码列表只需要两个数据:begin,end;
需要使用pc(当前页码)来推算出begin和end:
begin=pc-5;
end=pc+4;
计算公式:
如果总页数<=10(列表长度),那么begin=1,end=10;否则使用计算公式:begin=pc-5以及end=pc+4;但是这样也会导致头溢出和尾溢出。
头溢出:当begin<1时,让begin=1,end=10;
尾溢出:当end=${tp(总页数)}时,让end=tp;
代码实现:
1.首先要创建一个pagebean:
packagepages;importjava.util.List;public class PageBean{private int pc;//当前页码page code//private int tp;//总页数=总记录数/每页记录数
private int tr;//总记录数
private int ps;//每页记录数
private List beanlist;//当前页的记录
public intgetPc() {returnpc;
}public void setPc(intpc) {this.pc =pc;
}public intgetTp() {int num=tr/ps;int tp=tr%ps;return tp==0?num:num+1;
}public intgetTr() {returntr;
}public void setTr(inttr) {this.tr =tr;
}public intgetPs() {returnps;
}public void setPs(intps) {this.ps =ps;
}public ListgetBeanlist() {returnbeanlist;
}public void setBeanlist(Listbeanlist) {this.beanlist =beanlist;
}
@OverridepublicString toString() {return "PageBean [pc=" + pc + ", tr=" + tr + ", ps=" + ps + ", beanlist=" + beanlist + "]";
}
}
2.servlet层:
publicString findall(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {/** 1.获取页面传递的pc
* 2.给定ps的值
* 3.使用pc和ps调用service方法,得到pagebean对象,保存到request域
* 4.转发到list.jsp*/
int pc=getpc(request);int ps=10;
PageBean pb=customerservice.findall(pc,ps);
request.setAttribute("pb", pb);return "f:/list.jsp";
}/** 获取pc*/
public intgetpc(HttpServletRequest request){
String value=request.getParameter("pc");if(value==null||value.trim().isEmpty()){return 1;
}returnInteger.parseInt(value);
}
3.service层:
public PageBean findall(int pc, intps){returncustomerdao.findall(pc,ps);
}
4.dao层:
/** 查询所有*/
public PageBean findall(int pc, intps){try{
PageBean pb=new PageBean();
pb.setPc(pc);
pb.setPs(ps);/** 得到tr*/String sql="select count(*) from t_customers";
Number trnum=(Number)qr.query(sql, newScalarHandler());int tr=trnum.intValue();
pb.setTr(tr);/** 得到beanlist*/String sql1="select * from t_customers order by cname limit ?,?";
List beanlist=qr.query(sql1, new BeanListHandler(customer.class),
(pc-1)*ps,ps);
pb.setBeanlist(beanlist);returnpb;
}catch(SQLException e) {throw newRuntimeException(e);
}
}
4.jsp页面的设置:
第${pb.pc}页/供${pb.tp}页
首页
上一页
[${i}]
[${i}]
下一页
尾页
java 页码计算_分页之页面页码列表计算相关推荐
- 语义计算_语义多态性如何在量子计算中起作用
语义计算 A few months ago, I published an article about an obscure mathematical concept which can be use ...
- si9000阻抗匹配计算_如何在设计之初计算出两层PCB板差分线的阻抗,线宽,间距...
最近在设计一款两层板PCB.板上一些高速信号线,分别是MIMP接口的差分线和USB2.0的差分线.既然是高速线,那么就需要设计成阻抗匹配走线.MIMP差分线需要做100ohm匹配,USB线需要做90o ...
- java ee500错误_无法访问页面,500错误
想问下这是怎么回事,明明跟着视频一步步敲代码的 相关配置和代码 web.xml:<?xml version="1.0" encoding="UTF-8" ...
- java 高德地图 车型比价计算_高德地图的高速公路过路费计算功能是如何实现的?有相应开放的API吗?...
高德的可以计算通行费吗?我也有用,不过没注意这个... 我推测这个计算功能的原理就是根据通行里程X每公里资费,加上途经地区的进城费之类的其他规费得出来的吧?高速公路收费标准大体上是小车0.4元每公里, ...
- java实现抛物线轨迹计算_抛物线、导弹线轨迹计算
抛物线轨迹计算 不同输入情况下的抛物线有不同计算方式.为了保证飞行时间的一致,水平初速度和起点两个参数是任何情况下都需要的. 三.示例代码 void UParabolicMovementCompone ...
- python数学计算_初学者Python学习笔记--数学计算
四则运算 加减乘除 1 + 2 3 10 - 6 4 5 * 5 25 20 / 5 4.0 3 ** 3 27 取整计算 13//3 4 取余数计算 13%3 1 计算顺序,括号>乘除> ...
- monkey 运行时间怎么计算_基于STM32F103C8T6工控板利用定时器计算某段代码的运行时间...
本人参考了热心网友分享的一些案例,并增加了一些个人认为比较好的想法,重新整合了一下代码. 硬件:某宝网上购买的STM32F103C8T6工控板,价格50¥左右: 思路: 1)利用通用定时器(选择定时器 ...
- 竖流式沉淀池三角堰计算_竖流式沉淀池设计计算
竖流式沉淀池设计计算 池中废水竖向流动的沉淀池. 池体平面图形为圆形或方形, 水由设在 池中心的进水管自上而下进入池内(管中流速应小于 30mm/s ) ,管 下设伞形挡板使废水在池中均匀分布后沿整个 ...
- python 边缘计算_如何实现高效的边缘计算?边缘计算如何快速处理数据缺陷
描述 这些看似相同的特征是如何实现的?提高数据中心计算效率的本质在于提高it通信节点到边缘计算终端的数据交换吞吐量.未来边缘计算可以产生数据吞吐量提升10倍的性能提升.基于人工智能的边缘计算能够产生高 ...
最新文章
- matlab title多个标题_Matlab画图,只需要这几步
- 基于TensorFlow的简单验证码识别
- 2020年,从提升认知开始
- python程序经常被杀死之谜
- [原]Ubuntu桌面安装配置
- 库-libuv 和 libev的对比
- Python 三元表达式、列表推导式、生成器表达式
- linux下如何安装凤凰系统,凤凰系统Phoenix OS U盘版安装制作教程
- 可视化大屏|2022年最值得推荐的10款可视化软件
- 小程序版聊天室|聊天小程序|仿微信聊天界面小程序
- python统计pdf字数代码_Python基本数据统计.pdf
- html对话框取消确定,alert 确定 取消
- python层次分析法案例_在R语言中使用层次分析法-案例1
- Android自定义View——仿QQ等级天数进度
- 免费的office软件哪个好用
- LaTex多张子图并排排列方法
- 运用贝塞尔曲线绘制笔锋效果
- Express4.X版本修改默认模板jade为ejs并且试用html为视图模板后缀名
- Android获取通讯录权限6.0及以上
- DC插座的各种型号尺寸
热门文章
- [渝粤教育] 西南科技大学 管理运筹学与系统分析 在线考试复习资料
- 大数据Hadoop(一)
- r5 5560U怎么样 相当于什么水平
- 基于物理的渲染技术(PBR)系列三
- 【Python爆款】这款“成语接龙”太强大了?以后就靠它了、霸气。
- 串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE
- 新浪微博布局学习--新浪微博Android版底部工具栏的Demo
- Springboot项目自动打包部署插件 (wagon-maven-plugin)
- office2016资源文件以及安装教程
- 如何彻底关闭Hyper-v