没接触过flex,忽然有项目需要,简单的看了一下!
flex通过HTTPService与后台java交互数据
前台flex代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL=""
horizontalAlign="center" verticalAlign="middle"
width="100%" height="100%"
>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function outputFormat(
uInfo:XML, elemName:String
):String
{
var retVal:String
= "{"
+ uInfo.elements(elemName)[0].toString()
+ "}";
return retVal;
}
private function handleResultEvt(
evt:ResultEvent
):void
{
var usrInfo:XML
= evt.result as XML;
fName.text
= outputFormat(usrInfo, "first_name");
lName.text
= outputFormat(usrInfo, "last_name");
age.text
= outputFormat(usrInfo, "age");
addr1.text
= outputFormat(usrInfo, "address_1");
addr2.text
= outputFormat(usrInfo, "address_2");
city.text
= outputFormat(usrInfo, "city");
state.text
= outputFormat(usrInfo, "state");
zip.text
= outputFormat(usrInfo, "zip");
}
private function handleFaultEvt(
evt:FaultEvent
):void
{
Alert.show(evt.fault.message,
"Error");
}
private function doInfoQuery():void
{
userInfoQuery.send();
}
]]>
</mx:Script>
<mx:Panel title="Data Comminucation With ASP and MS SQL Server 2000"
height="75%" width="75%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
horizontalAlign="center" verticalAlign="middle"
>
<mx:Form>
<mx:FormHeading label="User Info Query"/>
<mx:FormItem label="Last Name">
<mx:TextInput id="lName"/>
</mx:FormItem>
<mx:FormItem label="First Name">
<mx:TextInput id="fName"/>
</mx:FormItem>
<mx:FormItem label="Age">
<mx:TextInput id="age"/>
</mx:FormItem>
<mx:FormItem label="Address #1">
<mx:TextInput id="addr1"/>
</mx:FormItem>
<mx:FormItem label="Address #2">
<mx:TextInput id="addr2"/>
</mx:FormItem>
<mx:FormItem label="City">
<mx:TextInput id="city"/>
</mx:FormItem>
<mx:FormItem label="State">
<mx:TextInput id="state"/>
</mx:FormItem>
<mx:FormItem label="Zip">
<mx:TextInput id="zip"/>
</mx:FormItem>
</mx:Form>
<mx:Button label="Query Info" click="doInfoQuery()"/>
</mx:Panel>
<mx:HTTPService id="userInfoQuery"
url="http://localhost:8080/project/tscenario/list2.htm"
useProxy="false" method="GET"
resultFormat="e4x"
result="handleResultEvt(event);"
fault="handleFaultEvt(event);" >
<mx:request>
<fname>{fName.text}</fname>
<lname>{lName.text}</lname>
</mx:request>
</mx:HTTPService>
</mx:Application>
url发送请求链接
public void list2(HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setContentType(CONTENT_TYPE);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter out = response.getWriter();
StringBuffer xml = new StringBuffer();
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
//加上你要发送的xml
xml.append("<user_info><first_name>mingzi</first_name>"+
"<last_name>lastname</last_name>"+
"<age>23</age>"+
"<address_1>address1</address_1>"+
"<address_2>address2</address_2>"+
"<city>beijing</city>"+
"<state>Ca</state>"+
"<zip>799</zip></user_info>");
out.write(xml.toString());
}
后台处理请求,这是我自己拼写的一个xml文件,包含了需要的参数,也可以自己查数据库,通过一些工具util拼写xml
前台解析xml文件
显示