Java与Flex学习札记(13)-Flex中解析地址栏传递的参数
Java与Flex学习笔记(13)----Flex中解析地址栏传递的参数
最近做一个激活邮件的功能,没想到越做需要知道的知识点越多,加了很多逻辑判断,也大大锻炼自己的思维能力。现分享其中解析地址栏参数的问题。
由于flex默认包装的页面是html页面,所以与jsp不同的是参数是传递在“#”后面,而jsp是在“?”后面,所以这点得弄清。
要解析参数,首先需要把地址栏链接参数链(即“#”后面的参数对)给获取下来,这个有很多方法,比如调用JavaScript的 ExternalInterface.call()方法,本人用的是flex的静态类BrowserManager获得的,代码如下所示:
/** * 获取地址栏参数链 * */ public function getAllParams():String{ var bm:IBrowserManager=BrowserManager.getInstance(); bm.init(); return bm.fragment }
此方法返回的是地址栏参数对。
下面需要对此参数对进行分割并保存在一个object对象里,代码如下所示:
/** * 接收并解析浏览器地址栏url的信息 * */ public functiongetParams():Object { var params:Object= {}; var query:String=getAllParams(); if(query) { var pairs:Array = query.split("&"); for(var i:uint=0; i < pairs.length; i++) { var pos:int = pairs[i].indexOf("="); if(pos != -1) { var argname:String = pairs[i].substring(0, pos); var value:String = pairs[i].substring(pos+1); params[argname] = value; } } } return params; }
此方法返回的是一个object对象,如果参数链不为空,那么取值很简单,就是:
Var obj:Object= getParams(); Var email:String=obj.email;
然后再加入自己的业务逻辑就ok了。
例如本人做的,测试页面,没有参数时:
有参数时业务判断:
还有很多,就不一一列举了,不过是在大牛面前班门弄斧了。
这是本人学习的结果,允许转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7772255,谢谢~