ssh的分页操作

最近用学了一个ssh做了一个特殊的分页,怎么特殊呢?上才艺!
在这里插入图片描述
可以看到起始只能显示1,2,3后面就是…,接下来
在这里插入图片描述
对就是…后面是五六七。的效果。
下面说明具体步骤。
sql语句有这条“select * from 表 limit ?,?”.两个占位符,第一个代表起始位置也就是初始值是从第几开始进行的(最初是为0),第二个代表每次的个数即每次可以查询几条。

了解这行sql语句就要分析之后需要的条件:
1、当前页
2、翻页需要查询几条(翻页条数)
3、总共数据库的条数
4、总页数==(总条数/翻页条数)
这些条件可以用一个实体类来定义
在这里插入图片描述
然后用另外一个类去实现它:方法
1、当前页可以自定义也可以默认为1(一般为1)
当你访问另一个页面时可以不设置默认为1
在这里插入图片描述
2、翻页条数也可以自定义,或者传参,因为 最上面的sql语句的两个占位符是需要当前页、总条数、和翻页数,所以可以写一个方法在这里插入图片描述
每次分页都可以调用这个方法。
3、总条数数据库全查可以得出
4、不用说了吧
然后就是解决最上面sql语句第一个占位符的问题(起始位置),(提示)写一个方法好调用。解决:(当前页-1)乘翻页条数。可以列举几个试试。

大致这几个框架已经打好了,接下来该如何实现呢?
首先这个上一页和下一页不用说了当前页数进行加一和减一,说一下这里进行a标签传值是自动刷新的,当你从mvc传过来值时,直接在a标签进行数据的加一和减一是自动实现的。
首页和尾页也是如此首页的当前页为1,而尾页的当前页就是总页数

在这里插入图片描述
这个如何实现呢?
原本是有五个页数,但现在只能看到后三个,因为前两个被屏蔽了,因为只有当这五个页数分别大于零才能显现。即当前页数为1时前面两个都小于1,显示不出来
在这里插入图片描述
当页数为3左右各两个就显示出来了,后面两个的限制是后俩的页数小于总页数。

图中…的意思其实就是看不见正常五页左边和右边的,有个限制条件加一加就能实现,具体有点难的就是有关页数的类的实现有点困难我直接代码封上
下面展示。

// An highlighted block
public class pagebean {
	//页面大小
 private Integer pagesize;
 	//当前页
 private Integer currentpage;
 	//总条数
 private Integer totalcount;
 	//总页数
 private Integer totalpage;
 	//每页显示的页数
 private List list;
 public pagebean(Integer pagesize,Integer currentpage,Integer totalcount) {
	 	this.pagesize=pagesize;
	 	this.currentpage=currentpage;
	 	this.totalcount=totalcount;
	 	//当前页为空或者小于零把它看为一
	 	if(this.currentpage==null||this.currentpage<1) {
	 		this.currentpage=1;
	 	}
	 	//默认一般页为五个属性
//	 	if(this.pagesize==null) {
//	 		this.pagesize=5;
//	 	}
	 	//Math.ceil方法是向上取整
	 	/*这里一个坑,起初我以为是我的start方法有问题,实际就是没问题,因为传到currentpage一直是1!!
	 	 * 因为Math.ceil的方法我他妈多加了一个括号,如果先整数相处就直接四舍五入了,14/8等于一点多,java直接判断
	 	 * 为1,所以totalpage一直是1,无论点击下一页也没用。
	 	 * */
	 	this.totalpage=(int) Math.ceil(1.0*this.totalcount/this.pagesize);
	 //	System.out.println(	this.totalcount);
	 //	System.out.println(this.pagesize);
	 //	System.out.println(this.totalpage);
	 	//判断当前页是否大于总页数
	 	if(this.currentpage>this.totalpage) {
	 		this.currentpage=this.totalpage;
	 	}
 }
 //获取起始索引 不知道为什么这么方法用不了奇了怪了、、因为currentpage的值一直是1,所以不能刷新
 public Integer getstart() {
	 return (this.currentpage-1)*this.pagesize;
 }
public Integer getPagesize() {
	return pagesize;
}
public void setPagesize(Integer pagesize) {
	this.pagesize = pagesize;
}
public Integer getCurrentpage() {
	return currentpage;
}
public void setCurrentpage(Integer currentpage) {
	this.currentpage = currentpage;
}
public Integer getTotalcount() {
	return totalcount;
}
public void setTotalcount(Integer totalcount) {
	this.totalcount = totalcount;
}
public Integer getTotalpage() {
	return totalpage;
}
public void setTotalpage(Integer totalpage) {
	this.totalpage = totalpage;
}
public List getList() {
	return list;
}
public void setList(List list) {
	this.list = list;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值