Flex HTTPService如何给后台传参数

本文来自:http://java-007.iteye.com/blog/381617

最近看一些文档,总结了一些<mx:HTTPService>给后台传递参数的方法,列举如下:
方法1:采用URLVariables对象

Java代码 复制代码  收藏代码spinner.gif
  1. <?xml version=”1.0″ encoding=”utf-8″?>   
  2. <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”   
  3.      layout=”absolute” fontSize=”12″   
  4.     >   
  5.     <mx:Script>   
  6.         <![CDATA[   
  7.             import mx.controls.Alert;   
  8.             import mx.rpc.events.ResultEvent;   
  9.             //对提交给后台的参数进行UTF-8的编码处理   
  10.             private function httpEncoding(param:String):String{   
  11.                 return encodeURIComponent(param);   
  12.             }   
  13.             private function httpEncoding0(param:String):String{   
  14.                 return param;//encodeURI(param);   
  15.             }   
  16.             private function doRequest():void{   
  17.                 btn_do.enabled=false;   
  18.                 var url:String = "http://localhost:8600/grid.jsp";   
  19.                 //以下那样写后台会乱码,不管是否做URI编码转换   
  20.                 //url += "?user="+httpEncoding0("用户名");   
  21.                 //url += "&psw="+httpEncoding0("密码");   
  22.                 //trace(url);   
  23.                 srv.url = url;   
  24.                 //srv.send();   
  25.                 //以下这样写正常   
  26.                 var params:URLVariables = new URLVariables();   
  27.                 //这个user,psw就是传入后台的参数user,jsp就用 request.getParameter("user")来取   
  28.                 params.user = httpEncoding("用户名");   
  29.                 params.psw = httpEncoding("密码");   
  30.                 srv.send(params);               
  31.             }   
  32.             private function resultHandler(event:ResultEvent):void{   
  33.                 Alert.show("与后台交互结束,前台开始取得的数据...","提示信息");   
  34.                 btn_do.enabled=true;   
  35.             }   
  36.         ]]>   
  37.     </mx:Script>   
  38.     <mx:HTTPService id=”srv” result=”resultHandler(event);”/>   
  39.     <mx:Panel title=”测试与jsp后台交互” layout=”absolute” width=”100%” height=”90%”>   
  40.         <mx:Button id=”btn_do” label=”取得数据” click=”doRequest();”/>   
  41.         <mx:Spacer height=”1″/>   
  42.         <mx:DataGrid dataProvider=”{srv.lastResult.catalog.product}” width=”100%” height=”100%” y=”28″/>        
  43.     </mx:Panel>   
  44. </mx:Application>  
<?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的用法

Java代码 复制代码  收藏代码spinner.gif
  1. <?xml version=”1.0″ encoding=”utf-8″?>   
  2. <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>   
  3.     <mx:states>   
  4.         <mx:State name=”Logged In”>   
  5.             <mx:SetProperty target=”{panel1}” name=”width” value=”95%”/>   
  6.             <mx:SetProperty target=”{panel1}” name=”height” value=”95%”/>   
  7.             <mx:RemoveChild target=”{password}”/>   
  8.             <mx:RemoveChild target=”{username}”/>   
  9.             <mx:RemoveChild target=”{label1}”/>   
  10.             <mx:RemoveChild target=”{Submit}”/>   
  11.             <mx:RemoveChild target=”{label2}”/>   
  12.             <mx:SetProperty target=”{panel1}” name=”title” value=”Members Section”/>   
  13.             <mx:AddChild relativeTo=”{panel1}” position=”lastChild”>   
  14.                 <mx:Label x=”10″ y=”10″ text=”Welcome to the Members Section!”/>   
  15.             </mx:AddChild>   
  16.             <mx:AddChild relativeTo=”{panel1}” position=”lastChild”>   
  17.                 <mx:Label x=”10″ y=”36″ text=”Here you can do great things, like join the forums @ Viper Creations!”/>   
  18.             </mx:AddChild>   
  19.             <mx:AddChild relativeTo=”{panel1}” position=”lastChild”>   
  20.                 <mx:Label x=”10″ y=”62″ text=”Label”/>   
  21.             </mx:AddChild>   
  22.         </mx:State>   
  23.     </mx:states>   
  24.     <mx:Script>   
  25.         <![CDATA[   
  26.             import mx.rpc.events.ResultEvent;   
  27.                
  28.         ]]>   
  29.     </mx:Script>   
  30.     <mx:Script>   
  31.        
  32. <![CDATA[   
  33. private function checkLogin(evt:ResultEvent):void  
  34. {   
  35.     if(evt.result.loginsuccess == "yes")   
  36.     {   
  37.     currentState = "Logged In";   
  38.     }   
  39.     if(evt.result.loginsuccess == "no")   
  40.     {   
  41.            
  42.         mx.controls.Alert.show('Invalid username/password');   
  43.     }           
  44. }   
  45. ]]>   
  46. </mx:Script>   
  47.     <mx:HTTPService id=”login_user” result=”checkLogin(event)” showBusyCursor=”true” method=”POST” url=”http://www.vipercreations.com/site_admin/login.php” useProxy=”false”>   
  48.         <mx:request xmlns=”">   
  49.             <username>   
  50.                 {username.text}   
  51.             </username>   
  52.             <password>   
  53.                 {password.text}   
  54.             </password>   
  55.         </mx:request>   
  56.     </mx:HTTPService>   
  57.        
  58.     <mx:Panel resizeEffect=”Resize” width=”250″ height=”200″ layout=”absolute” title=”Login System” horizontalCenter=”0″ verticalCenter=”-2″ id=”panel1″>   
  59.         <mx:Label x=”10″ y=”10″ text=”Username:” id=”label1″/>   
  60.         <mx:TextInput x=”10″ y=”36″ id=”username”/>   
  61.         <mx:Label x=”10″ y=”66″ text=”Password:” id=”label2″/>   
  62.         <mx:TextInput x=”10″ y=”92″ id=”password” displayAsPassword=”true”/>   
  63.        <mx:Button x=”10″ y=”122″ label=”Submit” id=”Submit” click=”login_user.send();”/>   
  64.     </mx:Panel>   
  65.        
  66. </mx:Application>  
<?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>


本文参考:冰山上的播客
http://xinsync.xju.edu.cn/index.php/archives/1513

转载于:https://www.cnblogs.com/wyyLick/archive/2011/10/21/2219878.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值