地球已经调至震动状态使用flex中的httpservice方法与java进行交互:
一、写服务器: 1.在myeclipse中建立web项目 2.写一个用来打印xml的servlet 3.当使用httpservice与java进行交互的时候不用改写remoting-config.xml文件 4.web.xml文件中配置servlet的访问地址(一般不用配置,当一个servlet建好之后myeclipse就会自动配置好web.xml文 件,不用去改动,但是需要注意的是,当你在导入blazeds开发文件的时候他会改动web.xml文件,这时候你一定要将web.xml文件改过来,要 不然flex在访问服务器的时候则反问不到你的servlet)。 5.当你的服务器端的servlet写好之后再去建立flex 项目,并且根据你之前建好的servlet项目在flex项目的属性项中配置flex服务器的访问地址。 6.写flex的mxml文件。
二、一个简单案例: 1.servlet源代码
复制代码 代码如下: package com.wle.flex.HttpService.java文件源代码
package com.wle.flex;
import java.io.IOException; import java.io.Writer;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class HttpService01 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml;charset=utf-8"); Writer out = response.getWriter(); out.write("<?xml version='1.0' encoding='utf-8'?>"); out.write("<item>"); out.write("<student age='23'/>"); out.write("<student age='24'/>"); out.write("<student age='23'/>"); out.write("<student age='24'/>"); out.write("<student age='23'/>"); out.write("<student age='24'/>"); out.write("</item>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
2.servlet对应的web.xml文件
复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee "> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>HttpService01</servlet-name> <servlet-class>com.wle.flex.HttpService01</servlet-class> </servlet>
<servlet-mapping> <servlet-name>HttpService01</servlet-name> <url-pattern>/wl/HttpService01</url-pattern> </servlet-mapping>
</web-app>
3.在webroot目录下导入blazeds文件
4.发布servlet项目 比如讲servlet项目发布到D:Tomcat 6.0webappsflex_service_HttpService这个文件下
5.建立flex项目 建好flex项目之后,在项目上右键单击选择属性,在属性中的flex服务器选项中设置flex服务器的地址 配置信息如下: 文件根目录:D:Tomcat 6.0webappsflex_service_HttpService 根URL(U)::8089/flex_service_HttpService 上下文根目录:/flex_service_HttpService 6.配置好flex项目的服务器之后就开始写flex源文件,如下:
复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="12" viewSourceURL="srcview/index.html" xmlns:s="library://ns.adobe.com/flex/spark">
<!--<mx:Style source="DGtoExcel.css"/>-->
<mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.events.ItemClickEvent; import mx.rpc.events.FaultEvent;
[Bindable] private var myAC:ArrayCollection;
private function faultHandler(event:FaultEvent):void { Alert.show(event.fault.faultString, event.fault.message); }
// Function to filter out all items with gender private function maleFilterFunc(item:Object):Boolean { return item.gender == 1; }
// Function to apply the filter function the ICollectionView. private function filterMale():void { myAC.filterFunction = maleFilterFunc; //Refresh the collection view to apply the filter. myAC.refresh(); }
// Function to filter out all items with gender private function femaleFilterFunc(item:Object):Boolean { return item.gender == 0; }
// Function to apply the filter function the ICollectionView. private function filterFemale():void { myAC.filterFunction = femaleFilterFunc; //Refresh the collection view to apply the filter. myAC.refresh(); }
// Function to Reset the view to its original state. private function resetAC():void { myAC.filterFunction = null; //Refresh the collection view. myAC.refresh(); }
// Event handler function to display the selected button private function filterHandler(event:ItemClickEvent):void { switch(event.currentTarget.selectedValue){ case 1: filterMale(); break; case 0: filterFemale(); break; case 2: resetAC(); break; default: break; }
}
protected function bt1_clickHandler():void { myService.send(); }
]]> </mx:Script> <mx:HTTPService showBusyCursor="true" url="http://localhost:8089/flex_service_HttpService/wl/HttpService01" result="myAC = event.result.item.student" fault="faultHandler(event)" contentType="application/xml" /> <mx:HBox> <mx:RadioButtonGroup itemClick="filterHandler(event);"/> <mx:RadioButton groupName="gendertype" value="1" label="男" /> <mx:RadioButton groupName="gendertype" value="0" label="女" /> <mx:RadioButton groupName="gendertype" value="2" label="所有" /> </mx:HBox> <mx:DataGrid rowCount="20" dataProvider="{myAC}" > <mx:columns> <mx:DataGridColumn headerText="姓名" dataField="name"/> <mx:DataGridColumn headerText="年龄" dataField="age" /> <mx:DataGridColumn headerText="班级" dataField="class"/> </mx:columns> </mx:DataGrid> <mx:HBox> <s:Button label="提交"/> </mx:HBox> </mx:Application>
这样就实现了flex到javaee 的交互工作 (编辑:我爱故事小小网_铜陵站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|