| |
这里我以从一个用户表中查询用户信息为例演示其用法:
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+="首页 尾页 "; else { str+="<a href='"+filename+temp+"cur_page="+(curpage+1)+"'>下一页</a> "; str+="<a href='"+filename+temp+"cur_page="+pagecount+"'>尾页</a> "; } str+=" 共<b>"
|
|