服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java实现一个分页类


  这里我以从一个用户表中查询用户信息为例演示其用法:

1.将pageresultset.java文件编译成class文件,并放入你的web
应用程序的web-inf/classes/com/youngor/util目录下,可以对包名做相应修改。

2.在你的action类中:
先从业务处理逻辑类中取出数据(arraylist或vector格式)
userbo userbo=new userbo();
collection data=userbo.findusers();//示例方法
再得到当前页curpage和每页记录数pagesize
int curpage = integer.parseint(request.getparameter(“cur_page“));
int pagesize=15;
然后生成pageresultset对象
pageresultset datalist = new pageresultset(data, curpage, pagesize);
request.setattribute("userslist", userslist);

3.在你的jsp页面中:
<%
pageresultset pageresultset=(pageresultset)request.getattribute("userslist");
arraylist userslist=(arraylist)pageresultset.getdata();
for(int i=0;i<userslist.size();i++)
{
usereo usereo=(usereo)userslist.get(i);%>
<tr>
<td><a href=../../"view_user.do?id=<%=usereo.getid()%>"><%=usereo.getusername()%></a></td>
<td><%=usereo.getname()%></td>
<td><%=usereo.getphonenumber()%></td>
<td><%=usereo.getemailbox()%></td>
<td><%=usereo.getaddress()%></td>
<td><%=usereo.getpostcode()%></td>
</tr>
<%}%>
</table></td>
</tr>
</table>

<!-- 显示分页工具栏 -->

<%=pageresultset.gettoolbar("list_users.do")%>


注意:
1、如果你觉得分页工具栏不能满足你的要求,可以用pageresultset类中的公共方法
first()、previous()、next()、last()定制自己的工具栏,并且,你还可以在pageresultset中定义多个样式的工具栏;
2、gettoolbar(string url)方法接受带查询字符串的参数,比如“list_users.do?class_id=1“。



//pageresultset.java
package com.youngor.util;

import java.util.*;

/**
* <p>title: pageresultset</p>
*
* <p>description:分页类 </p>
*
* <p>copyright: copyright (c) 2004</p>
*
* <p>company:youngor-studio(http://www.54youngor.com) </p>
* @author:伍维波
* @version 1.0
*/
public class pageresultset {
/**
* 分页数据
*/
private collection data = null;
/**
* 当前页
*/
private int curpage;
/**
* 每页显示的记录数
*/
private int pagesize;
/**
* 记录行数
*/
private int rowscount;
/**
* 页数
*/
private int pagecount;

public pageresultset(collection data) {
this.data = data;
this.curpage = 1;
this.pagesize = 10;
this.rowscount = data.size();
this.pagecount = (int) math.ceil((double) rowscount / pagesize);
}

public pageresultset(collection data, int curpage) {
this.data = data;
this.curpage = curpage;
this.pagesize = 10;
this.rowscount = data.size();
this.pagecount = (int) math.ceil((double) rowscount / pagesize);
}

public pageresultset(collection data, int curpage, int pagesize) {
this.data = data;
this.curpage = curpage;
this.pagesize = pagesize;
this.rowscount = data.size();
this.pagecount = (int) math.ceil((double) rowscount / pagesize);
}

/**
* getcurpage:返回当前的页数
*
* @return int
*/
public int getcurpage() {
return curpage;
}

/**
* getpagesize:返回分页大小
*
* @return int
*/
public int getpagesize() {
return pagesize;
}

/**
* getrowscount:返回总记录行数
*
* @return int
*/
public int getrowscount() {
return rowscount;
}

/**
* getpagecount:返回总页数
*
* @return int
*/
public int getpagecount() {
return pagecount;
}
/**
* 第一页
* @return int
*/
public int first() {
return 1;
}
/**
* 最后一页
* @return int
*/
public int last() {
return pagecount;
}
/**
*
* @return int
*/
public int next() {
return (curpage + 1 > pagecount) ? pagecount : curpage + 1;
}

/**
* 第一页
* @return boolean
*/
public boolean isfirst() {
return (curpage==1)?true:false;
}

/**
* 第一页
* @return boolean
*/
public boolean islast() {
return (curpage==pagecount)?true:false;
}
/**
* 获取当前页数据
* @return collection
*/
public collection getdata() {
collection curdata = null;
if (data != null) {
int start = (curpage - 1) * pagesize;
int end = 0;
if (start + pagesize > rowscount)
end = rowscount;
else
end = start + pagesize;
arraylist arraycurdata = new arraylist();
arraylist arraydata = null;
vector vectorcurdata = new vector();
vector vectordata = null;
boolean isarray = true;
if (data instanceof arraylist) {
arraydata = (arraylist) data;
isarray = true;
} else if (data instanceof vector) {
vectordata = (vector) data;
isarray = false;
}
for (int i = start; i < end; i++) {
if (isarray) {
arraycurdata.add(arraydata.get(i));
} else {
vectordata.add(vectordata.elementat(i));
}
}
if (isarray) {
curdata = (collection) arraycurdata;
} else {
curdata = (collection) vectorcurdata;
}
}
return curdata;
}
/**
* 获取工具条
* @return string
*/
public string gettoolbar(string filename){
string temp="";
if(filename.indexof("?")==-1)
{
temp="?";
}
else
{
temp="&";
}
string str="<form method='post' name='frmpage' action='"+filename+"'>";
str+="<p align='center'>";
if(isfirst())
str+="首页 尾页&nbsp;";
else
{
str+="<a href='"+filename+temp+"cur_page="+(curpage+1)+"'>下一页</a>&nbsp;";
str+="<a href='"+filename+temp+"cur_page="+pagecount+"'>尾页</a>&nbsp;";
}
str+="&nbsp;共<b>"

扫描关注微信公众号