| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 862 人关注过本帖
标题:求教java分页的url 问题!
只看楼主 加入收藏
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:6 
求教java分页的url 问题!
做查询分页的时候 查询条件很多,点击查询后,条件就在url上不显示了!!求解,求方法
搜索更多相关主题的帖子: 查询 java 
2012-04-18 15:37
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
查询的条件应该随URL再传回来的。
方法1:在每个分页的链接上,都加上条件的串
方法2:分页的链接实际是改变了URL中页号,用JS改变URL中的页号,再访问此URL

为游戏狂~~!!    大家努力编哈!
2012-04-18 21:40
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
收藏
得分:0 
回复 2楼 smallmoon521
用url怎么改变? 能不能写一段代码,让我看下!

楼上,楼下的一定要幸福开心哦!
2012-04-19 08:47
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
我想你的问题是如何在某搜索结果中换页是吧?

比如:
index.jsp?uid=10&tid=20&keyword=myjava&pageNum=1


实际下一页的URL应该是
index.jsp?uid=10&tid=20&keyword=myjava&pageNum=2


上面提到的,第一种方法就是把这个链接直接写到 第二页链接的href属性中

第二种方法:
页面参数
uid=10&tid=20&keyword=myjava&pageNum=1

可以从request中取得,做为一个JS变量. 用JS代码把pageNum改成2,再window.location.href=这个串 就可以了

实际上我就是用的这种方法,不知道其他网站是否也这样用,不知道套路是不是有点野.
但好外是显然的,分页代码可以重用.
程序代码:
/**set value to request query string
    *value will encode in this func
  */
function SetValueToRQS(RQS,name,value) {
    if(RQS==null)
        return RQS;
    var index = RQS.indexOf("&"+name+"=");
    if(index==-1) {
        index = RQS.indexOf(name+"=");    
        //filter the wrong find PS:uid=2; id=2 is a wrong find
        if(index>0) index=-1;
    }
    //if not found, add one
    if(index==-1)
        return RQS.replace("#", "")+"&"+name+"="+MyURLencoder(value);;
    var bIndex = RQS.indexOf("=",index);
    var eIndex = RQS.indexOf("&",index+1);
    if(eIndex==-1)  
        eIndex = RQS.length;
    var bStr = RQS.substring(0,bIndex+1);
    var eStr = RQS.substring(eIndex,RQS.length);
    RQS = bStr+MyURLencoder(value)+eStr;
    return RQS;
}

function MyURLencoder(param) {
    if(param==null) return "";
    param += "";
    var myCode = "BKURLCODE";
    param = param.replace(/\+/g,myCode);
    return encodeURI(encodeURI(param));
}


举个例子:(响应链接的JS代码)
程序代码:
var link = 'index.jsp?uid=10&tid=20&keyword=myjava&pageNum=1';
link = SetValueToRQS(link,"pageNum",2);
window.location.href = link;

为游戏狂~~!!    大家努力编哈!
2012-04-19 11:22
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:20 
根本一点,Web请求是无状态的.

所以响应什么样的数据,都是通过参数控制的,那么自己控制参数就好喽~

如果你也想这么用的话,这些都给你吧

程序代码:
/**get value from request query string*/
function GetValueFromRQS(RQS,name) {
    if(RQS==null)
        return ;
    var index = RQS.indexOf("&"+name+"=");
    if(index==-1) {
        index = RQS.indexOf(name+"=");    
        if(index!=0) return ;
    }
    if(index==-1)
        return ;
    var bIndex = RQS.indexOf("=",index);
    var eIndex = RQS.indexOf("&",bIndex+1);
    if(eIndex==-1)
            eIndex = RQS.length;
    return RQS.substring(bIndex+1,eIndex);
}

/**remove value from request query string
  */
function RemoveAttributeFromRQS(RQS,name) {
    if(RQS==null)
        return RQS;
    var bIndex = RQS.indexOf("&"+name+"=");
    if(bIndex==-1) {
        bIndex = RQS.indexOf(name+"=");    
        if(bIndex!=0) return RQS;
    }
    if(bIndex==-1)
        return RQS;
    var eIndex = RQS.indexOf("&",bIndex+1);
    if(eIndex==-1)
        eIndex = RQS.length;
    var bStr = (bIndex==0) ? "" : RQS.substring(0,bIndex);
    var eStr = RQS.substring(eIndex,RQS.length);
    RQS = bStr+eStr;
    if(RQS.indexOf("&")==0)
        RQS = RQS.substring(1,RQS.length);
    return RQS;
}

/**

 *change attribute of request query string

 *this func can change attribute's name and value or only the name, decide by the param

 */
function ChangeAttributeOfRQS(RQS,nameOld,nameNew,valueNew) {
    if(RQS==null)
        return RQS;
    //the attribute which name equel nameNew  will be remove first
    RQS = RemoveAttributeFromRQS(RQS,nameNew);
    var bIndex = RQS.indexOf("&"+nameOld+"=");
    if(bIndex==-1) {
        bIndex = RQS.indexOf(nameOld+"=");    
        if(bIndex!=0) return RQS;
    }
    if(bIndex==-1)
        return RQS;
    var eIndex = 0;
    if(typeof valueNew == "undefined") {
        eIndex = RQS.indexOf("=",bIndex+1);    //only change the name
    }
    else
        eIndex = RQS.indexOf("&",bIndex+1);    //change the name and value
    if(eIndex==-1)
        eIndex = RQS.length;
    var bStr = (bIndex==0) ? "" : RQS.substring(0,bIndex);
    var eStr = RQS.substring(eIndex,RQS.length);
    RQS = bStr+"&"+nameNew;
    if(valueNew !== undefined)
        RQS += "="+MyURLcoder(valueNew);
    RQS += eStr;
    if(RQS.indexOf("&")==0)
        RQS = RQS.substring(1,RQS.length);
    return RQS;
}

为游戏狂~~!!    大家努力编哈!
2012-04-19 11:26
dnxingyully
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-17
收藏
得分:0 
回复 5楼 smallmoon521
能不能加我QQ 406795921  我也想请教这个分页的问题
2012-11-17 23:04
快速回复:求教java分页的url 问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013218 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved