flex 与后台数据交互方式之HTTPservice 的问题。

1.mxml文件的代码如下:<?xmlversion="1.0"encoding="utf-8"?><s:Applicationxmlns:fx="http://ns.a... 1.mxml文件的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">
<fx:Script>
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
public function init():void{
b.addEventListener(MouseEvent.CLICK,getValue);
}
public function resultH(a:ResultEvent):void{

Alert.show(a.result.toString());
}
public function faultH(a:FaultEvent):void{
Alert.show(a.message.toString());
}
public function getValue(evt:MouseEvent):void{
hs.send();
}
</fx:Script>

<s:Panel x="91" y="16" width="466" height="264" title="View">
<s:TextArea x="73" y="36" width="132" id="valuetext"/>
<s:TextArea x="226" y="36" width="138" id="outvalue"/>
<s:Label x="101" y="10" text="输入" width="76" height="18"/>
<s:Label x="275" y="10" text="输出" width="64" height="18"/>
<s:Button id="b" x="25" y="200" label="点击"/>
</s:Panel>
<fx:Declarations>
<mx:HTTPService id="hs" showBusyCursor="true" url="test.jsp" method="post" contentType="application/xml" result="resultH(event)" fault="faultH(event)">
<mx:request>
<valuet>{valuetext.text}</valuet>
</mx:request>
</mx:HTTPService>
</fx:Declarations>
</s:Application>

jsp文件代码如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String str=request.getParameter("valuet");
String returnvakue="";
if(str==null){
returnvakue="fail";
out.println(returnvakue);
}else{

out.println("<?xml version='1.0' encoding='utf-8'?>");
out.println("<root>");
out.println("<sta>"+returnvakue+"</sta>");
out.println("</root>");
}
%>

</body>
</html>
出现的错误信息如下:

(mx.messaging.messages::AcknowledgeMessage)#0
body = "

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Insert title here</title>

</head>

<body>

fail

</body>

</html>"
clientId = "DirectHTTPChannel0"
correlationId = "90BEDA58-27B8-FBCD-5685-1CACBC759DA3"
destination = ""
headers = (Object)#1
DSStatusCode = 200
messageId = "D65B6390-9FD3-7253-3B0A-1CACBC940B0A"
timestamp = 0
timeToLive = 0

上面jsp取到的变量str成null了,不知道为什么,不过出现的错误似乎不是因为这个,因为为其赋了值也出现该错误。那位大侠帮帮我,本人初学FLEX。
展开
 我来答
手机用户67072
2011-07-13 · TA获得超过382个赞
知道答主
回答量:493
采纳率:0%
帮助的人:0
展开全部
webservice 满足的是不同系统之间的数据调用。
由于webservice是SOA架构的一种实施模式,可以让不同系统之间的数据实现交互(跨域),那不用多说,肯定是跨系统数据交互使用。
httpservice的调用主要是实现了基于基本的HTTP协议实现的一些数据传输了。包括基本的get post方式,servlet方式等。这种方式现在实现基本都是与php等结合使用。
如果楼主想使用flex进行大规模的数据传输。后台java .net架构等。那必须使用Remoteservice的方式。据adobe自己声称,使用Remoteservice结合第三方插件BlazeDS可以有效的将前台与后台传输的方式进行一种特殊的二进制加密,极大的提高数据的传输效率。使得使用flex进行大型企业管理系统的开发成为可能。实际上个人并不看好flex平台下的大型系统开发。尝试使用后认为flex传输数据的前台代码量明显不低于普通的jsp界面以及其他如jquery框架,也远远不如ext的开发效率。
希望对楼主有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦欣彬4678
2011-07-24
知道答主
回答量:28
采纳率:0%
帮助的人:17.3万
展开全部
用这种穿参数的方式试试
改为
public function getValue(evt:MouseEvent):void
{
var param:URLVariables = new URLVariables();
param.valuet = "Hello Test";
hs.send(param);
}

然后把
<mx:request>
<valuet>{valuetext.text}</valuet>
</mx:request>
去掉(这种方式是Get形式的传参,貌似有个版本对中文还不支持- -)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式