如何用java实现分页效果(eclipse工具)

如题所述

package dl.wsxx.base;
public class Pager {
private int totalRows; // 总行数
private int pageSize; // 每页显示的行数
private int currentPage; // 当前页号
private int totalPages; // 总页数
private int startRow; // 当前页在数据库中的起始行
private int pageStartRow; // 当前页开始行
private int pageEndRow; // 当前页结束行
private int hasNextPage; // 下一页存在标识[0:不存在,1:存在]
private int hasPreviousPage; // 前一页存在标识[0:不存在,1:存在]
public Pager() {
}

public Pager(int _totalRows,int _pageSize) {
pageSize = _pageSize;
totalRows = _totalRows;
totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
currentPage = 1;
startRow = 0;
}
public int getStartRow() {
return startRow;
}
public int getpageStartRow() {
return pageStartRow;
}
public int getpageEndRow() {
return pageEndRow;
}
public int getTotalPages() {
return totalPages;
}
public int getCurrentPage() {
return currentPage;
}
public int getPageSize() {
return pageSize;
}
public int getHasNextPage() {
return hasNextPage;
}
public int getHasPreviousPage() {
return hasPreviousPage;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}
public void setPageEndRow(int pageEndRow) {
this.pageEndRow = pageEndRow;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setHasNextPage(int hasNextPage) {
this.hasNextPage = hasNextPage;
}
public void setHasPreviousPage(int hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public int getTotalRows() {
return totalRows;
}
public void first() {
currentPage = 1;
startRow = 0;
pageStartRow = startRow + 1;
this.hasFlagSet(currentPage, totalPages);
if (this.hasNextPage == 0) {
pageEndRow = totalRows;
} else {
pageEndRow = startRow + pageSize;
}
}
public void previous() {
if (currentPage == 1) {
return;
}
currentPage--;
startRow = (currentPage - 1) * pageSize;
pageStartRow = startRow + 1;
this.hasFlagSet(currentPage, totalPages);
if (this.hasNextPage == 0) {
pageEndRow = totalRows;
} else {
pageEndRow = startRow + pageSize;
}
}
public void next() {
if (currentPage < totalPages) {
currentPage++;
}
startRow = (currentPage - 1) * pageSize;
pageStartRow = startRow + 1;
this.hasFlagSet(currentPage, totalPages);
if (this.hasNextPage == 0) {
pageEndRow = totalRows;
} else {
pageEndRow = startRow + pageSize;
}
}
public void last() {
currentPage = totalPages;
startRow = (currentPage - 1) * pageSize;
pageStartRow = startRow + 1;
this.hasFlagSet(currentPage, totalPages);
if (this.hasNextPage == 0) {
pageEndRow = totalRows;
} else {
pageEndRow = startRow + pageSize;
}
}
public void refresh(int _currentPage) {
currentPage = _currentPage;
if (currentPage > totalPages) {
last();
}
this.hasFlagSet(currentPage, totalPages);
}
private void hasFlagSet(int currentPage, int totalPages) {
if (currentPage == totalPages) {
if (currentPage == 1) {
this.hasPreviousPage = 0;
this.hasNextPage = 0;
} else {
this.hasPreviousPage = 1;
this.hasNextPage = 0;
}
} else {
if (currentPage == 1) {
this.hasPreviousPage = 0;
this.hasNextPage = 1;
} else {
this.hasPreviousPage = 1;
this.hasNextPage = 1;
}
}
}
}

这是我的工程里的分页核心代码,希望对你有用,还有ssh分页文档,可以参照研究一下。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-02-22
用java实现翻页代码跟eclipse没有关系。
参考代码如下:
<head>
<%
const MaxPerPage=20
dim sql
dim rs
dim totalPut
dim CurrentPage
dim TotalPages
dim i,j
%>
</head>
<body>
<%
conn = "DBQ=" + server.mappath("wj028.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
sql = "SELECT * FROM USER order by id desc"
set rs=server.createobject("adodb.recordset")
rs.open SQL,conn,1,1
rs.MoveFirst
rs.pagesize=MaxPerPage
howmanyfields=rs.Fields.Count-1

If trim(Request("Page"))<>"" then
CurrentPage= CLng(request("Page"))
If CurrentPage> rs.PageCount then
CurrentPage = rs.PageCount
End If
Else
CurrentPage= 1
End If

if rs.eof then
response.write "<p align='center'>没有记录!</p>"
else
totalPut=rs.recordcount
if CurrentPage<>1 then
if (currentPage-1)*MaxPerPage<totalPut then
rs.move(currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark
end if
end if

dim n,k
if (totalPut mod MaxPerPage)=0 then
n= totalPut \ MaxPerPage
else
n= totalPut \ MaxPerPage + 1
end if%>
<% i=0
do while not rs.EOF and i<maxperpage
%>
<%
rs.movenext
i=i+1
loop
%>
第<%=currentpage%>页
共<%=n%>页
<%
k=currentpage
if k<>1 then
response.write "[<b>"+"<a href='list.asp?page=1'>首页</a></b>]"
response.write "[<b>"+"<a href='list.asp?page="+cstr(k-1)+"'>上一页</a></b>]"
else
Response.Write "[首页][上一页]"
end if
if k<>n then
response.write "[<b>"+"<a href='list.asp?page="+cstr(k+1)+"'>下一页</a></b>] "
response.write "[<b>"+"<a href='list.asp?page="+cstr(n)+"'>尾页</a></b>] "
else
Response.Write "[下一页][尾页]"
end if
%>
<%
end if
set rs=nothing
set conn=nothing
%>
</body>
第2个回答  2013-04-24
分页无非就那几个参数,每页显示数、当前页、总数据量,然后根据公式去算把,很简单。稍微复杂一点的是根据条件查询,查询的结果分页,不过你思路对了也没问题追问

你有没有代码,我这些都不太懂啊,最好有注释

第3个回答  推荐于2018-03-29

这个跟eclipse没关系,参考代码:

package dl.wsxx.base;
public class Pager {
    private int totalRows; // 总行数
    private int pageSize; // 每页显示的行数
    private int currentPage; // 当前页号
    private int totalPages; // 总页数
    private int startRow; // 当前页在数据库中的起始行
    private int pageStartRow; // 当前页开始行
    private int pageEndRow; // 当前页结束行
    private int hasNextPage; // 下一页存在标识[0:不存在,1:存在]
    private int hasPreviousPage; // 前一页存在标识[0:不存在,1:存在]
    public Pager() {
    }
                                                                                                                 
    public Pager(int _totalRows,int _pageSize) {
        pageSize = _pageSize;
        totalRows = _totalRows;
        totalPages = totalRows / pageSize;
        int mod = totalRows % pageSize;
        if (mod > 0) {
            totalPages++;
        }
        currentPage = 1;
        startRow = 0;
    }
    public int getStartRow() {
        return startRow;
    }
    public int getpageStartRow() {
        return pageStartRow;
    }
    public int getpageEndRow() {
        return pageEndRow;
    }
    public int getTotalPages() {
        return totalPages;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public int getPageSize() {
        return pageSize;
    }
    public int getHasNextPage() {
        return hasNextPage;
    }
    public int getHasPreviousPage() {
        return hasPreviousPage;
    }
    public void setTotalRows(int totalRows) {
        this.totalRows = totalRows;
    }
    public void setStartRow(int startRow) {
        this.startRow = startRow;
    }
    public void setPageStartRow(int pageStartRow) {
        this.pageStartRow = pageStartRow;
    }
    public void setPageEndRow(int pageEndRow) {
        this.pageEndRow = pageEndRow;
    }
    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public void setHasNextPage(int hasNextPage) {
        this.hasNextPage = hasNextPage;
    }
    public void setHasPreviousPage(int hasPreviousPage) {
        this.hasPreviousPage = hasPreviousPage;
    }
    public int getTotalRows() {
        return totalRows;
    }
    public void first() {
        currentPage = 1;
        startRow = 0;
        pageStartRow = startRow + 1;
        this.hasFlagSet(currentPage, totalPages);
        if (this.hasNextPage == 0) {
            pageEndRow = totalRows;
        } else {
            pageEndRow = startRow + pageSize;
        }
    }
    public void previous() {
        if (currentPage == 1) {
            return;
        }
        currentPage--;
        startRow = (currentPage - 1) * pageSize;
        pageStartRow = startRow + 1;
        this.hasFlagSet(currentPage, totalPages);
        if (this.hasNextPage == 0) {
            pageEndRow = totalRows;
        } else {
            pageEndRow = startRow + pageSize;
        }
    }
    public void next() {
        if (currentPage < totalPages) {
            currentPage++;
        }
        startRow = (currentPage - 1) * pageSize;
        pageStartRow = startRow + 1;
        this.hasFlagSet(currentPage, totalPages);
        if (this.hasNextPage == 0) {
            pageEndRow = totalRows;
        } else {
            pageEndRow = startRow + pageSize;
        }
    }
    public void last() {
        currentPage = totalPages;
        startRow = (currentPage - 1) * pageSize;
        pageStartRow = startRow + 1;
        this.hasFlagSet(currentPage, totalPages);
        if (this.hasNextPage == 0) {
            pageEndRow = totalRows;
        } else {
            pageEndRow = startRow + pageSize;
        }
    }
    public void refresh(int _currentPage) {
        currentPage = _currentPage;
        if (currentPage > totalPages) {
            last();
        }
        this.hasFlagSet(currentPage, totalPages);
    }
    private void hasFlagSet(int currentPage, int totalPages) {
        if (currentPage == totalPages) {
            if (currentPage == 1) {
                this.hasPreviousPage = 0;
                this.hasNextPage = 0;
            } else {
                this.hasPreviousPage = 1;
                this.hasNextPage = 0;
            }
        } else {
            if (currentPage == 1) {
                this.hasPreviousPage = 0;
                this.hasNextPage = 1;
            } else {
                this.hasPreviousPage = 1;
                this.hasNextPage = 1;
            }
        }
    }
}

本回答被网友采纳
第4个回答  2013-04-24
我也想知道

java中如何实现分页功能?
项目采用三层架构,需要导入tomcat、JRE和mysql的依赖库文件,使用Eclipse进行开发。在tomcat安装文件夹的lib子文件夹中放置jstl-1.2.jar与standard.jar文件,用于JSP标签的运行。设计的jsp页面包括index.jsp和play.jsp。index.jsp为首页,play.jsp用于展示分页效果。创建分页文件Pagination和StuService类是实现...

在eclipse中用java程序查询MongoDB数据库,用flex(flash builder)显示...
分页就是每次查询规定行数的数据,每翻页一次查询一次,然后返回对应数据。主要是把起始位置和返回行数控制好 思想通了就剩实现了 也就是flex和java的多次交互了 我们公司用的是自己的框架,flex分页这块都是封装好的,调用封装的标签,配置一下属性就行 ...

为什么很多人说 Java 不适合编写桌面应用
第一,java对于画面展示上是很丑的 第二,java写桌面应用会显得很笨重,先不说java环境,就java运行占用内存你也可想而知~当初sun好高骛远了,想用awt来一个一次开发,各系统均可用,结果玩崩了,后来的swing基本上是对awt的封装和补充,但仍有缺陷,并且已经错失良机了 因为现在C#或者delphi在编写桌面应...

怎样设置Eclipse的java自动补全
Eclipse ·1 第一步:打开编译器然后再点开一个java文件。2第二步:在文件里右击鼠标,然后再选择Preferences。3第三步:而后再Preferences里选择java 4第四步:再选择Editor,再选择Content Assist 5 第五步:再在所圈出的地方设置时间(200)和字母(.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy...

Java的编辑器用哪个比较好?
1、初学者:初学者建议用JCreator,编译,运行比较简单,大部分代码多是需要手敲的。不过可以熟悉各个类,和使用。2、J2EE,J2ME开发:一般都使用Eclipse或MyEclipse,这两个提供了丰富的插件和友好的编辑界面,能耗也比较低,速度比较快。3、J2SE开发:建议使用NetBeans,Eclipse也是可以的,不过要加一个VE...

如何利用java进行app开发
1、下载并安装Java开发工具包(但如果在Mac上则跳过):即使你认为它已经安装,再次检查,可能这是Java运行时环境(JRE)。使用JDK的第6版,因为第7版不维护用于APP开发的 Eclipse ;2、下载和安装Eclipse:简而言之,Eclipse是一个实际编写APP的程序。它不仅可以免费下载,Eclipse软件还有其他优势。其中...

怎么在eclipse java中控制台输出
第一步:在菜单栏window下拉菜单中的”show view“中找到”Console“打开并拖拽到eclipse工具内的适当位置。第二步:在java代码中增加类似于”System.out.println()“方法,并在println方法中增加合适的参数值”success“(根据实际情况输入要输出的内容)。第三步:在java类(含有main方法)中,右击”run...

开源技术 Eclipse使用技巧
使用Eclipse来开发JSP程序 外挂名称 lomboz(下载页面)?group_id= 请选择适合自己版本的lomboz下载 lomboz p zip表示 版 lomboz m zip表示M 版本……以此类推 lomboz安装以及设置教学 Eclipse开发JSP 教学文件 Java转exe篇 实现方式 Eclipse搭配JSmooth(免费)先由Eclipse制作包含Manifest的JAR 制作教学 ...

怎样设置Eclipse的java自动补全
工具\/原料 电脑 Eclipse ·1 第一步:打开编译器然后再点开一个java文件。2第二步:在文件里右击鼠标,然后再选择Preferences。3第三步:而后再Preferences里选择java 4第四步:再选择Editor,再选择Content Assist 5 第五步:再在所圈出的地方设置时间(200)和字母(.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg...

如何在eclipse中运行java程序
eclipse是java程序开发首选的工具软件。工具\/原料 eclipse 方法\/步骤 新建项目:打开eclipse工具,点击File->new->java Project,如下图所示 输入项目的名称:以HelloWorld为例,点击finish结束 3.点击项目中src包,右击new->class即可实现类的创建 4.输入类名和包名,选择核心方法,点击finish即可完成类的...

相似回答