用java怎么实现数据分页 本帖最后由 java2000_net 于 2008-08-05 08:56:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去看看xpager那个分页很不错 比如你有91条数据首先你要知道你每页想分多少条按每页10条来说91条要分10页第一页 1-0第十页 90-91定义一些变量记录一些相关的值有记录总共条数的啊,当前页码的啊,一共的页数的啊,每页的条数的啊,等等等等数据就存在一个List里List里存一个VO大约就这样了 告诉你一个公式啊int pageCount=(total%pageSize==0)?(total%pageSize):(total%pageSize+1)pageCount代表总的页数,total代表总的条数,pageSize代表每页显示多少条求出总页数以后,然后你就可以显示1,2,3,4,5 你查询如果返回List ,可以pageCount=(List.size()/pageSize)然后用循环去做 ///分页 public static String getPageLinkStr(String action,int currentPage,int totalPage) { StringBuilder str=new StringBuilder(); String PageString0="<a href="+action+"page="+(currentPage-1)+">上一页</a> "; //"<a href=MeasureIndex.do?page=1>首页</a> "; String PageString1=""; String s=new String(); for(int i=1;i<totalPage+1;i++) { if(i==currentPage) { str.append(" "+i+" "); }else { str.append(" <a href="+action+"page="+i+">["+i+"]</a> "); } } PageString1="<a href="+action+"page="+(currentPage+1)+">下一页</a> "; if(1==currentPage) { PageString0="上一页 "; } if(currentPage==totalPage) { PageString1=" 下一页"; } return PageString0+str.toString()+PageString1; } Hibernate 有专门的分页机制,也是开发中应用最广泛的分页技术,研究研究这个吧,一两句真的没法解释 我也给个自己的公式你吧int pageNum = users.length%listNum == 0? users.length/listNum : users.length/listNum + 1;int start = nowPage <= pageNum? nowPage*listNum-listNum: 0;int end = (pageNum == 1 ? users.length: (listNum*nowPage > users.length? users.length:listNum*nowPage));users.length为你传进来的集合的长度,这个是你要传进来的参数。pageNum 为总页数。listNum 为 每页条数,这个也是你要传进来的参数。start 和end 你不用管了。start为循环的开始,end为喜循环的结束。for (int i = starte; i < end; i++) 然后在循环体里面输出你的数据项。 nowPage 为当前页数,也是你要传入的参数。 不会分页的话。建议你还是去搜索一下。例子很多。最好看看jdbc手动写的分页代码,看懂那个你就知道原理了.hibernate的是简单,不过光用不懂原理。也没啥意思 这里有一个教程,“JSP实例:JSP分页教程”http://www.code-123.com/html/20087151126073768877.html google 的天气预报接口 如何获取JSP本页面表单元素的值 以下方法得到的是什么????? 新手提问:js,不支持此属性或方法! 初学structs如何配置求助 JSP中文本框的隐藏问题 如何把开发好的系统放到网上呢? 请教大家一个问题阿,有大型网站开发项目经验的请您进了。。。。。。。。。。 我的一系列菜问 (四) 全当送分 textarea 中怎样限制最大输入字符数? 怎么把jsp动态转成静态的? 关于access删除重复数据行的sql语句
那个分页很不错
int pageCount=(total%pageSize==0)?(total%pageSize):(total%pageSize+1)
pageCount代表总的页数,total代表总的条数,pageSize代表每页显示多少条
求出总页数以后,然后你就可以显示1,2,3,4,5
///分页
public static String getPageLinkStr(String action,int currentPage,int totalPage)
{
StringBuilder str=new StringBuilder();
String PageString0="<a href="+action+"page="+(currentPage-1)+">上一页</a> "; //"<a href=MeasureIndex.do?page=1>首页</a> ";
String PageString1="";
String s=new String();
for(int i=1;i<totalPage+1;i++)
{ if(i==currentPage)
{
str.append(" "+i+" ");
}else
{
str.append(" <a href="+action+"page="+i+">["+i+"]</a> ");
}
}
PageString1="<a href="+action+"page="+(currentPage+1)+">下一页</a> ";
if(1==currentPage)
{
PageString0="上一页 ";
}
if(currentPage==totalPage)
{
PageString1=" 下一页";
}
return PageString0+str.toString()+PageString1;
}
int pageNum = users.length%listNum == 0? users.length/listNum : users.length/listNum + 1;
int start = nowPage <= pageNum? nowPage*listNum-listNum: 0;
int end = (pageNum == 1 ? users.length: (listNum*nowPage > users.length? users.length:listNum*nowPage));users.length为你传进来的集合的长度,这个是你要传进来的参数。
pageNum 为总页数。
listNum 为 每页条数,这个也是你要传进来的参数。start 和end 你不用管了。start为循环的开始,end为喜循环的结束。
for (int i = starte; i < end; i++) 然后在循环体里面输出你的数据项。
hibernate的是简单,不过光用不懂原理。也没啥意思
http://www.code-123.com/html/20087151126073768877.html