分页算法分析

zhouzongxi 2008-07-18 03:48:27
请教:
  //显示页数放到集合中
List pages = new ArrayList();
int start = 1;
if (page==1) start = 1; //第一页
else if (page%5==0) start = page+1;
else if (page%5==1) start = page-5;
else start = page/5*5+1;

for (int i=start;i<start+5 && i<=count;i++)
pages.add(i);

request.setAttribute("pages", pages);



request.getRequestDispatcher("page.jsp").forward(request, response);


	<!-- 只显示五页 -->

<c:forEach items="${pages}" var="i">
<a href="PageServlet?p=${i}">${i}</a>
</c:forEach>

解释清楚的分多 只要解释if嵌套那里
...全文
168 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouzongxi 2008-07-18
  • 打赏
  • 举报
回复
我已经分好页了
只是下面不是有个 1 ,2,3,4,5这样的东西么?
而我的记录比较多的时候会出现很多啊。我想只显示几页。当我点最后一页的时候 下个一页的序号又出来了。。
这样怎么做呢?
主要的分页功能早就做好了。只是想完善下细节。。
dyw31415926 2008-07-18
  • 打赏
  • 举报
回复
太简单而不通用的写法,建议不要凭空想了,直接找别人现在的分页bean来看看吧
wangshizhu79 2008-07-18
  • 打赏
  • 举报
回复
我看明白了
就是这个意思
象百度搜索结果一样
只显示
可以翻页的连接都是1-5 6-0这样模式的
比如你点12页那么page=12
这时下面的连接就是
11 12 13 14 15
而并不是 12 13 14 15 16
再点11 就是
6 7 8 9 10
而点15则是
16 17 18 19 20
而点12 13 14 的结果都一样

解释代码:
int start = 1;
if (page==1) start = 1; //默认为第一页
else if (page%5==0) start = page+1;//如果是5的倍数则说明已经到了本区域的尾部
//需要显示以后的页数了
else if (page%5==1) start = page-5;//如果余数是1说明到了本区域的开始
//需要显示以前的页数了
else start = page/5*5+1;//之间的数区域不变

for (int i=start;i<start+5 && i<=count;i++)
pages.add(i);//把页码添加到集合里
chuailong 2008-07-18
  • 打赏
  • 举报
回复
分页没有这么麻烦吧
rosewj 2008-07-18
  • 打赏
  • 举报
回复
这样分页不好 对数据库的访问量太大了 服务器会崩溃的 然后在查询的时候就分页 比如说在HIBERNATE中分
baihexige 2008-07-18
  • 打赏
  • 举报
回复
if (page==1) start = 1; //第一页
else if (page%5==0) start = page+1; // 因为page的下标从0开始的;0+1=1
else if (page%5==1) start = page-5; // 只有page为6,11 时 ;6-5=1;
else start = page/5*5+1; // 这个的结果是1,6,11,16 再被5除的余数 都是 1

我认为这些都是把statr置 第一页的
大河V5 2008-07-18
  • 打赏
  • 举报
回复
jf
laorer 2008-07-18
  • 打赏
  • 举报
回复
page不知道是做什么用的
pilishou 2008-07-18
  • 打赏
  • 举报
回复
if (page%5==0) start = page+1;
每页5条数据,如果page%5==0说明超过5条数据了,所以page+1,作为第二页显示;
lovingprince 2008-07-18
  • 打赏
  • 举报
回复
代码不完整,看都不好看。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧