首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一百分求分页算法解决思路

2012-01-26 
一百分求分页算法一个JavaBean分页的效果如百度或者google一样。比如点击3的时候是:上一页[1][2]3[4][5][6]

一百分求分页算法
一个JavaBean

分页的效果如百度或者google一样。

比如点击3的时候是:

上一页   [1]   [2]   3   [4]   [5]   [6]   [7]   [8]   [9]   [10]   [11]   [12]   下一页

点击12的时候是:

上一页   [2]   [3]   [4]   [5]   [6]   [7]   [8]   [9]   [10]   [11]   12   [13]   [14]   [15]   [16]   [17]   [18]   [19]   [20]   [21]   下一页

当前页的前后扩展后都是10页。

而超链接读到的是静态页面。

最好可以给我源码



[解决办法]
int totalofpage //每页多少行
int curPage //当前页
int j; //传进来的值

StringBuffer sbp = new StringBuffer();

curPage = (int)Math.ceil((double)j/(double)totalofpage);

/*前10页*/
for(int k=10;k> =1;k--){
len=curPage-k;
if(len> 0){sb.append( " <a href= "http://localhost:8080/_ddd.html " target=_blank> <u> "+len+ " </u> </a> &nbsp; ");
}
}

sbp.append(curPage+ "&nbsp; ");//当前页

/*后10页*/
for(int m=1;m <=10;m++){
len=curPage+m;
if(len <totalPage){
sb.append( " <a href= "http://localhost:8080/_ddd.html " target=_blank> <u> "+len+ " </u> </a> &nbsp; ");
}
}
[解决办法]
http://hi.baidu.com/lael80/blog/item/74fa6ec6576d641b9d163dfd.html
下载这个论坛,里面的发布就是一样的算法

////////////bbs.rar\bbs\src\javabean\Func.java

public String ShowPage(int page_count,int page_now,String page_url){
int k=0;
String page_tmp= " ";
if(page_now> 1){
page_tmp= " <font face= 'webdings '> <a href= ' "+page_url+ "=1 ' title= '首页 '> 9 </a> </font> &nbsp; <font face= 'webdings '> <a href= ' "+page_url+ "= "+(page_now-1)+ " ' title= '上页 '> 7 </a> </font> &nbsp; ";
}else{
page_tmp= " <font face= 'webdings '> 9 </font> &nbsp; ";
page_tmp=page_tmp+ " <font face= 'webdings '> 7 </font> &nbsp; ";
}

if(page_count==1){
page_tmp=page_tmp+ "[&nbsp; ";
page_tmp=page_tmp+ "1&nbsp; ";
page_tmp=page_tmp+ "]&nbsp; ";
}
if(page_count <=10&&page_count> 1){
page_tmp=page_tmp+ "[&nbsp; ";
for(k=1;k <=page_count;k++){
if(k!=page_now)page_tmp=page_tmp+ " <a href= ' "+page_url+ "= "+k+ " '> "+k+ " </a> &nbsp; ";
else page_tmp=page_tmp+k+ "&nbsp; ";
}
page_tmp=page_tmp+ "]&nbsp; ";
}
if(page_count> 10){
if(page_now <=5){
page_tmp=page_tmp+ "[&nbsp; ";
for(k=1;k <=10;k++){
if(k!=page_now)page_tmp=page_tmp+ " <a href= ' "+page_url+ "= "+k+ " '> "+k+ " </a> &nbsp; ";
else page_tmp=page_tmp+k+ "&nbsp; ";
}
page_tmp=page_tmp+ "...]&nbsp; ";


}else if(page_now> =page_count-5){
page_tmp=page_tmp+ "[...&nbsp; ";
for(k=page_count-10+1;k <=page_count;k++){
if(k!=page_now)page_tmp=page_tmp+ " <a href= ' "+page_url+ "= "+k+ " '> "+k+ " </a> &nbsp; ";
else page_tmp=page_tmp+k+ "&nbsp; ";
}
page_tmp=page_tmp+ "]&nbsp; ";
}else{
page_tmp=page_tmp+ "[...&nbsp; ";
for(k=page_now-5+1;k <=page_now+5;k++){
if(k!=page_now)page_tmp=page_tmp+ " <a href= ' "+page_url+ "= "+k+ " '> "+k+ " </a> &nbsp; ";
else page_tmp=page_tmp+k+ "&nbsp; ";
}
page_tmp=page_tmp+ "...]&nbsp; ";
}
}
if(page_now <page_count){
page_tmp=page_tmp+ " <font face= 'webdings '> <a href= ' "+page_url+ "= "+(page_now+1)+ " ' title= '下页 '> 8 </a> </font> ";
page_tmp=page_tmp+ "&nbsp; <font face= 'webdings '> <a href= ' "+page_url+ "= "+page_count+ " ' title= '未页 '> : </a> </font> ";
}else{
page_tmp=page_tmp+ " <font face= 'webdings '> 8 </font> &nbsp; ";
page_tmp=page_tmp+ " <font face= 'webdings '> : </font> ";
}
return page_tmp;
}

[解决办法]
没有通用的方法的

我只能是建议你写个封装的方法

方法1:返回LIST(查询结果),传入查询条件、排序条件、当前页数,每页有多少条

方法2:返回STRING (分页下方的代码),传入每页条数,有多少页
[解决办法]
楼上的写的太晕。
我做过的,基本思想就是给页面建一个pageBean。
并通过URL的参数来提供跳转。

热点排行