欢迎光临
我们一直在努力

用JAVA实现一个分页类-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

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

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 previous() {

return (curpage – 1 < 1) ? 1 : curpage – 1;

}

/**

* 下一页

* @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=1>首页</a>&nbsp;";

str+="<a href="+filename+temp+"cur_page="+(curpage-1)+">上一页</a>&nbsp;";

}

if(islast())

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>"+rowscount+"</b>条记录&nbsp;";

str+="&nbsp;转到<select name=page onchange=\"location="+filename+temp+"cur_page=+this.options[this.selectedindex].value\">";

for(int i=1;i<=pagecount;i++)

{

if(i==curpage)

str+="<option value="+i+" selected>第"+i+"页</option>";

else

str+="<option value="+i+">第"+i+"页</option>";

}

str+="</select></p></form>";

return str;

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用JAVA实现一个分页类-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章