读书人

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

发布时间: 2012-01-26 19:40:46 作者: rapoo

一百分求分页算法
一个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>   ");
}
}

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

/*后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>   ");
}
}
[解决办法]
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>   <font face= 'webdings '> <a href= ' "+page_url+ "= "+(page_now-1)+ " ' title= '上页 '> 7 </a> </font>   ";
}else{
page_tmp= " <font face= 'webdings '> 9 </font>   ";
page_tmp=page_tmp+ " <font face= 'webdings '> 7 </font>   ";
}

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


}else if(page_now> =page_count-5){
page_tmp=page_tmp+ "[...  ";
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>   ";
else page_tmp=page_tmp+k+ "  ";
}
page_tmp=page_tmp+ "]  ";
}else{
page_tmp=page_tmp+ "[...  ";
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>   ";
else page_tmp=page_tmp+k+ "  ";
}
page_tmp=page_tmp+ "...]  ";
}
}
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+ "  <font face= 'webdings '> <a href= ' "+page_url+ "= "+page_count+ " ' title= '未页 '> : </a> </font> ";
}else{
page_tmp=page_tmp+ " <font face= 'webdings '> 8 </font>   ";
page_tmp=page_tmp+ " <font face= 'webdings '> : </font> ";
}
return page_tmp;
}

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

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

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

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

读书人网 >Java Web开发

热点推荐