2025-11-25 18:52:15 玩家互动社区

最近用学了一个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;

}

}