flex和java交互的三种方式之一:httpService
发布时间:2020-12-15 01:17:18 所属栏目:百科 来源:网络整理
导读:在该demo 中围绕执行的流程来作主线,进行记录: 1. 页面上的组件元素 ??? mx:VBox?? ??? ?mx:HBox?? ??? ??? ?s:TextInput id="add1" width="120"/?? ??? ??? ?s:Label text="+"/?? ??? ??? ?s:TextInput id="add2" width="120"/?? ??? ??? ?s:Label text="
在该demo 中围绕执行的流程来作主线,进行记录: 1. 页面上的组件元素 ??? <mx:VBox> ?? ??? ?<mx:HBox> ?? ??? ??? ?<s:TextInput id="add1" width="120"/> ?? ??? ??? ?<s:Label text="+"/> ?? ??? ??? ?<s:TextInput id="add2" width="120"/> ?? ??? ??? ?<s:Label text="="/> ?? ??? ??? ?<s:TextInput id="result" width="120"/> ?? ??? ??? ?<s:Button label="submit" click="requestServer()"/> ?? ??? ?</mx:HBox> ? ?? ?</mx:VBox>2. <s:button/>元素的click响应事件requestServer <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; private function requestServer():void{ this.flexService.send(); } ]]> </fx:Script>注意:flexService将在下面的代码中出现 3. 声明httpService服务 <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:HTTPService id="flexService" url="flexService.action" method="POST" resultFormat="text" result="flexServiceHandler(event)"> <s:request xmlns=""> <add1>{this.add1.text}</add1> <add2>{this.add2.text}</add2> </s:request> </s:HTTPService> </fx:Declarations>注意: 1)url就是我们想调用的请求处理对象。因为在例子中用到的是struts2,所以这里命名为flexService.action,它的名称和struts.xml文件中action的名字相同。
4. 处理结果的回调函数flexServiceHandler(event) private function flexServiceHandler(event:ResultEvent):void{ var returnedData:String = String(event.result); this.result.text =returnedData; } 注:1) event.result :得到返回结果,将返回的结果转型成String类型 ??????? 2)将处理后的返回结果赋值给<s:textField/>对象。 5. 下面是服务器端的代码: public class FlexAction extends ActionSupport{ private int add1; private int add2; public int getAdd1() { return add1; } public void setAdd1(int add1) { this.add1 = add1; } public int getAdd2() { return add2; } public void setAdd2(int add2) { this.add2 = add2; } @Override public String execute()throws Exception{ System.out.println("invoked!"); int result = add1+add2; HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/plain; charset=utf-8"); response.setHeader("Cache-Control","no-cache"); PrintWriter writer = response.getWriter(); writer.print(result); writer.flush(); //writer.close(); return null; } } 注意: 1) writer对象调用的print()方法,打印返回结果writer.print(result);并flush();
6. 将该struts2的action对象在struts.xml文件中注册 <package name="flexService" extends="struts-default"> <action name="flexService" class="com.test.action.FlexAction"/> </package>以上就完成了flex+java 以httpService方式进行交互的小例子! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |