网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  用java实现一个分页类     
  文章作者:未知  文章来源:水木森林  
  查看:105次  录入:管理员--2007-11-17  
 
  这里我以从一个用户表中查询用户信息为例演示其用法:

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>"
 
 
上一篇: 用java实现人工智能中的a*算法求8数码问题    下一篇: 用java转换简繁体的基础知识 (不用对照表,用算法实现)
  相关文档
jdbc基础教程之驱动设置 11-16
jdbc 4.0规范之目标 11-17
identity列的检查指定表的当前标识值 11-17
nokia开发者平台series60介绍 11-17
全面认识junit 4的新特征 11-17
java入门:java语言中创建和使用日期 01-24
jbuilder7与weblogic7整合开发之-环境建立 11-17
charcodeat 方法 11-16
详细介绍在tomcat中配置数据源原理 11-17
swing中的actionlistener响应研究 11-17
怎么使用java实现把邮件附件下载到本地 11-17
推技术聊天室的实现(上) 11-17
通过jdmk 进行遗留系统管理 11-17
jsp学习记录(六)——page 命令 11-17
蔡学镛谈“linux + java 会得到什么” 11-16
编写高级应用程序3 11-17
如何在java中实现jobscheduling 11-17
java初学及基础问题 11-16
j2me综合--j2me应用程序内存优化三招 02-27
经验谈:我学习使用java的一点体会 11-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息