
三个方法:
1、requestQueryString("参数")//获取指定参数,返回字符串;
2、requestQueryStrings();//获取全部参数,并返回数组;
3、requestsetQuery("参数","参数的值");//如果当前地址栏有此参数,那么将更新此参数,否则返回一个新的地址栏参数字符串。
例如:
当前地址栏参数字符串为:name=a&site=never_online
alert(requestsetQuery("name","blueDestiny"))
如果地址栏参数中有"name",那么返回name=blueDestiny&site=never_online
setQuery方法有自动追加参数的功能。如:
当前地址栏参数字符串为:site=never_online
alert(requestsetQuery("name","blueDestiny"))
则返回site=never_online&name=blueDestiny
同理,如果地址栏没有参数,也会自动追加参数
alert(requestsetQuery("name","blueDestiny"))
返回name=blueDestiny
<SCRIPT LANGUAGE="JavaScript">
<!--
// author: never-online
// web: never-onlinenet
var request = {
QueryString : function(val) {
var uri = windowlocationsearch;
var re = new RegExp("" +val+ "\=([^\&\])", "ig");
return ((urimatch(re))(urimatch(re)[0]substr(vallength+1)):null);
},
QueryStrings : function() {
var uri = windowlocationsearch;
var re = /\w\=([^\&\])/ig;
var retval=[];
while ((arr = reexec(uri)) != null)
retvalpush(arr[0]);
return retval;
},
setQuery : function(val1, val2) {
var a = thisQueryStrings();
var retval = "";
var seted = false;
var re = new RegExp("^" +val1+ "\=([^\&\])$", "ig");
for(var i=0; i<alength; i++) {
if (retest(a[i])) {
seted = true;
a[i] = val1 +"="+ val2;
}
}
retval = ajoin("&");
return "" +retval+ (seted "" : (retval "&" : "") +val1+ "=" +val2);
}
}
alert(requestsetQuery("e","b"))
//-->
</SCRIPT>
在某些场景中,不光要对方法的返回值和调用进行验证,同时需要验证一系列交互后所传入方法的参数。那么我们可以用参数捕获器来捕获传入方法的参数进行验证,看它是否符合我们的要求。
通过ArgumentCaptor对象的forClass(Class<T> clazz)方法来构建ArgumentCaptor对象。然后便可在验证时对方法的参数进行捕获,最后验证捕获的参数值。如果方法有多个参数都要捕获验证,那就需要创建多个ArgumentCaptor对象处理。
argumentcapture() 捕获方法参数
argumentgetValue() 获取方法参数值,如果方法进行了多次调用,它将返回最后一个参数值
argumentgetAllValues() 方法进行多次调用后,返回多个参数值
首先构建ArgumentCaptor需要传入捕获参数的对象,例子中是String。接着要在verify方法的参数中调用argumentcapture()方法来捕获输入的参数,之后argument变量中就保存了参数值,可以用argumentgetValue()获取。当某个对象进行了多次调用后,如mock2对象,这时调用argumentgetValue()获取到的是最后一次调用的参数。如果要获取所有的参数值可以调用argumentgetAllValues(),它将返回参数值的List。
通过使用windowlocationsearch可以获取到当前URL的号开始的字符串,如前面的链接获取到的search为id=001,再对获取的字符串进行处理,就可以获取到参数的值了,参考代码如下:
<SPAN style="FONT-SIZE: 14px">function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&])(&|$)");
var r = windowlocationsearchsubstr(1)match(reg);
if (r != null)
return unescape(r[2]);
return null;
}
</SPAN>
在调用上面的方法的时候,只要传入参数的名称,就可以获取到想要的参数的值了,如:getUrlParam("id")。
在页面A传值:
windowshowModalDialog("ModalDialogFrameaspxTitle=选择组织部门&PageUrl=ParentTreeViewaspx",window,"dialogWidth=380px;dialogHeight=650px;status=no;center=yes;");
在页面A传值:
windowshowModalDialog("ModalDialogFrameaspxTitle=选择组织部门&PageUrl=ParentTreeViewaspx",window,"dialogWidth=380px;dialogHeight=650px;status=no;center=yes;");view plaincopy to clipboardprint
在页面ModalDialogFrameaspx:
function GetQueryString(sProp)
{
var re = new RegExp("[&,]"+sProp + "=([^\\&])", "i");
var a = reexec(documentlocationsearch);
if (a == null)
return "";
return a[1];
}
在页面ModalDialogFrameaspx:
function GetQueryString(sProp)
{
var re = new RegExp("[&,]"+sProp + "=([^\\&])", "i");
var a = reexec(documentlocationsearch);
if (a == null)
return "";
return a[1];
}view plaincopy to clipboardprint
调用方法:
var url=GetQueryString("PageUrl"); //ParentTreeViewaspx
var title=GetQueryString("Title"); //选择组织部门
属性可以放置在几乎所有的声明中(但特定的属性可能限制在其上有效的声明类型)。在语法上,属性的指定方法为:将括在方括号中的属性名置于其适用的实体声明之前。“方法”是包含一系列语句的代码块。在C#中,每个执行指令都是在方法的上下文中执行的。本主题讨论命名方法。文档中的其他地方讨论了名为“匿名函数”的另一种方法。方法是通过指定访问级别、返回值、方法名称和任何方法参数在类或结构中声明的。这些部分统称为方法的“签名”。方法参数括在括号中,并用逗号隔开。空括号表示方法不需要参数。
以上就是关于如何获得request中所有的参数名和参数值全部的内容,包括:如何获得request中所有的参数名和参数值、利用ArgumentCaptor捕获方法参数进行验证、javascript中怎么获取请求的参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)