您的位置:首页 > 理论基础 > 计算机网络

Flex HTTPService如何给后台传递参数

2008-12-04 21:09 316 查看
最近看一些文档,总结了一些<mx:HTTPService>给后台传递参数的方法,列举如下:

方法1:采用URLVariables对象


<?xml version="1.0" encoding="utf-8"?>


<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"


layout="absolute" fontSize="12"


>


<mx:Script>


<![CDATA[


import mx.controls.Alert;


import mx.rpc.events.ResultEvent;


//对提交给后台的参数进行UTF-8的编码处理


private function httpEncoding(param:String):String{


return encodeURIComponent(param);


}


private function httpEncoding0(param:String):String{


return param;//encodeURI(param);


}


private function doRequest():void{


btn_do.enabled=false;


var url:String = "http://localhost:8600/grid.jsp";


//以下那样写后台会乱码,不管是否做URI编码转换


//url += "?user="+httpEncoding0("用户名");


//url += "&psw="+httpEncoding0("密码");


//trace(url);


srv.url = url;


//srv.send();


//以下这样写正常


var params:URLVariables = new URLVariables();


//这个user,psw就是传入后台的参数user,jsp就用 request.getParameter("user")来取


params.user = httpEncoding("用户名");


params.psw = httpEncoding("密码");


srv.send(params);


}


private function resultHandler(event:ResultEvent):void{


Alert.show("与后台交互结束,前台开始取得的数据...","提示信息");


btn_do.enabled=true;


}


]]>


</mx:Script>


<mx:HTTPService id="srv" result="resultHandler(event);"/>


<mx:Panel title="测试与jsp后台交互" layout="absolute" width="100%" height="90%">


<mx:Button id="btn_do" label="取得数据" click="doRequest();"/>


<mx:Spacer height="1"/>


<mx:DataGrid dataProvider="{srv.lastResult.catalog.product}" width="100%" height="100%" y="28"/>


</mx:Panel>


</mx:Application>
方法2:采用<mx:request/>,同时也演示了mx:State的用法,[来自网上]


<?xml version="1.0" encoding="utf-8"?>


<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">


<mx:states>


<mx:State name="Logged In">


<mx:SetProperty target="{panel1}" name="width" value="95%"/>


<mx:SetProperty target="{panel1}" name="height" value="95%"/>


<mx:RemoveChild target="{password}"/>


<mx:RemoveChild target="{username}"/>


<mx:RemoveChild target="{label1}"/>


<mx:RemoveChild target="{Submit}"/>


<mx:RemoveChild target="{label2}"/>


<mx:SetProperty target="{panel1}" name="title" value="Members Section"/>


<mx:AddChild relativeTo="{panel1}" position="lastChild">


<mx:Label x="10" y="10" text="Welcome to the Members Section!"/>


</mx:AddChild>


<mx:AddChild relativeTo="{panel1}" position="lastChild">


<mx:Label x="10" y="36" text="Here you can do great things, like join the forums @ Viper Creations!"/>


</mx:AddChild>


<mx:AddChild relativeTo="{panel1}" position="lastChild">


<mx:Label x="10" y="62" text="Label"/>


</mx:AddChild>


</mx:State>


</mx:states>


<mx:Script>


<![CDATA[


import mx.rpc.events.ResultEvent;




]]>


</mx:Script>


<mx:Script>






<![CDATA[




private function checkLogin(evt:ResultEvent):void


{




if(evt.result.loginsuccess == "yes")




{




currentState = "Logged In";




}




if(evt.result.loginsuccess == "no")




{




mx.controls.Alert.show('Invalid username/password');




}


}




]]>




</mx:Script>


<mx:HTTPService id="login_user" result="checkLogin(event)" showBusyCursor="true" method="POST" url="http://www.vipercreations.com/site_admin/login.php" useProxy="false">


<mx:request xmlns="">


<username>


{username.text}


</username>


<password>


{password.text}


</password>


</mx:request>


</mx:HTTPService>




<mx:Panel resizeEffect="Resize" width="250" height="200" layout="absolute" title="Login System" horizontalCenter="0" verticalCenter="-2" id="panel1">


<mx:Label x="10" y="10" text="Username:" id="label1"/>


<mx:TextInput x="10" y="36" id="username"/>


<mx:Label x="10" y="66" text="Password:" id="label2"/>


<mx:TextInput x="10" y="92" id="password" displayAsPassword="true"/>


<mx:Button x="10" y="122" label="Submit" id="Submit" click="login_user.send();"/>


</mx:Panel>




</mx:Application>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: