Flex HTTPService 提交表单

本文介绍了使用Flash MX通过两种不同方法实现与后台服务器交互的过程。一种是利用URLVariables对象来传递参数,另一种则展示了如何使用mx:request标签配合状态管理(mx:State)实现登录验证功能。

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

 

 

基于粒子群优化算法的p-Hub选址优化(Matlab代码实现)内容概要:本文介绍了基于粒子群优化算法(PSO)的p-Hub选址优化问题的研究与实现,重点利用Matlab进行算法编程和仿真。p-Hub选址是物流与交通网络中的关键问题,旨在通过确定最优的枢纽节点位置和非枢纽节点的分配方式,最小化网络总成本。文章详细阐述了粒子群算法的基本原理及其在解决组合优化问题中的适应性改进,结合p-Hub中转网络的特点构建数学模型,并通过Matlab代码实现算法流程,包括初始化、适应度计算、粒子更新与收敛判断等环节。同时可能涉及对算法参数设置、收敛性能及不同规模案例的仿真结果分析,以验证方法的有效性和鲁棒性。; 适合人群:具备一定Matlab编程基础和优化算法理论知识的高校研究生、科研人员及从事物流网络规划、交通系统设计等相关领域的工程技术人员。; 使用场景及目标:①解决物流、航空、通信等网络中的枢纽选址与路径优化问题;②学习并掌握粒子群算法在复杂组合优化问题中的建模与实现方法;③为相关科研项目或实际工程应用提供算法支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现逻辑,重点关注目标函数建模、粒子编码方式及约束处理策略,并尝试调整参数或拓展模型以加深对算法性能的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值