您当前的位置:首页 > 互联网教程

怎样用java实现分页显示

发布时间:2025-05-21 14:03:12    发布人:远客网络

怎样用java实现分页显示

一、怎样用java实现分页显示

1、实现原理很简单,就是建立一个Page类,里面放当前访问的页数和每一页显示的记录行数。然后通过分页计算就可以得出下列数据。

2、总页数=总记录数/每页大小,如果0!=总记录数%每页大小,那么总页数再+1。

3、表记录的起始位置=(当前页数-1)*每页大小。

4、总记录数(select count(*) from [表名] [where [条件]]。从数据库中查询得到)

5、每页大小,可以固定,也可以从页面传过来有了这几个参数之后,就用sql语句查出对应的记录就可以了。

二、java中如何实现百度中的分页

publicclassCutPageimplementsSerializable{

privatestaticLoglog=LogFactory.getLog(CutPage.class);

privateintcurPageNo=0;//当前页数,从0开始

privateintsize=0;//所有数据条数

privateStringurl;//页面跳转的路径

privateListshowList;//当前页面需要显示的数据列表

privateintpageSize=20;//每页显示的数据条数

privateintgroupSize=1;//多少页为一组

privateStringpageNavigation;//导航条

*每次通过sql语句从数据库里面分组取出需要显示的数据

*javax.servlet.http.HttpServletRequest对象

*String页面跳转的路径,若没有特殊的参数传递,可以传入null或"",

*如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

publicvoidinit(HttpServletRequestrequest,Stringsql,intpageSize,

intgroupSize,intpageNo,Stringurl){

this.url=request.getRequestURL()+"";

this.pageSize=pageSize;//每页多少条记录

intcurGroup=this.curPageNo/this.groupSize+1;

//是否是新的一组数据,如果是则到数据库取数据

this.size=parseInt(request.getSession().getAttribute("page_all_size")

if(this.curPageNo%this.groupSize==0

||(request.getSession().getAttribute("cur_group")!=null&&parseInt(

""+request.getSession().getAttribute("cur_group"),1)!=curGroup)

||this.size==0||request.getParameter("reload")!=null){

request.getSession().setAttribute("cur_group",curGroup);

&&request.getSession().getAttribute("page_sql")!=null){

sql=request.getSession().getAttribute("page_sql")+"";

request.getSession().setAttribute("page_sql",sql);

this.size=getTotalCount(sql);

Listlist=getPageData(sql,(this.curPageNo/this.groupSize)

*this.pageSize*this.groupSize,this.pageSize

request.getSession().setAttribute("page_all_size",this.size);

request.getSession().setAttribute("page_cur_list",list);

this.setShowList(list);//设置页面上的显示数据

this.setShowList((List)request.getSession().getAttribute(

"page_cur_list"));//设置页面上的显示数据

*每次通过sql语句从数据库里面分组取出需要显示的数据

*javax.servlet.http.HttpServletRequest对象

*String页面跳转的路径,若没有特殊的参数传递,可以传入null或"",

*如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

publicvoidinit(HttpServletRequestrequest,Stringsql,intpageSize,

StringcurPage=request.getParameter("pageNo");

init(request,sql,pageSize,groupSize,parseInt(curPage,-1),url);

*每次通过sql语句从数据库里面分组取出需要显示的数据

*javax.servlet.http.HttpServletRequest对象

*String页面跳转的路径,若没有特殊的参数传递,可以传入null或"",

*如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径

publicvoidinit(HttpServletRequestrequest,Stringsql,intpageSize,

init(request,sql,pageSize,groupSize,pageNo,"");

}

太多了,贴不下,见附件

三、java分页类实现

这个很简单啊,如果总记录数除以每页的记录数正好除尽的话,那么最大页数就是总记录数除以每页的记录数,否则就是总记录数除以每页的记录数+1咯,例如总记录数为100条,每页是20条,那么分为5页(100/20),如果总记录数为101条,那么应该分为(101/20+1)也就是6页,有问题吗