`
张洪财
  • 浏览: 268544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex HTTPService 提交表单

    博客分类:
  • flex
阅读更多

方法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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics