flex和java交互的问题
在java的servlet里 request.setAttribute("name","小王");
在flex的mxml里如何取得name的值?
请赐教!!!
------解决方案--------------------没有办法通过你这种方式传送
目前只能由以下2个方式
socket
webservice
------解决方案--------------------Flex有三种方法可以和服务器联系
1 HTTPService,普通的POST或GET方式。在你的例子里想和Servlet对话用这种模式比较好
2 WebService 用SOAP和WebService从服务器端得到XML。普通的WebService用法
3 RemoteObjects 可以从服务器端获得封装好的JavaBean,在客户端会被自动封装到一个属性相同的ActionScript Bean里。需要额外的支持来实现,Adobe的LCDS(LifeCycle Data Services)是一个比较好的选择,极其强大而且很方便。另外ColdFusion也可以,不过没有LCDS好。
回答你的问题,下面的代码是类似login的一个功能,在页面完全渲染完之后,creationComplete就会执行callServlet这个方法来跟你的Servlet取得联系。里面mx:HttpService这个组件可以当做一个数据源使用,你既可以直接用Grid列出结果,也可以建立一个方法来处理获得的数据,
<mx:HttpService ..... result="loginUser(event);"... > 和与之对应的
private function loginUser(event:ResultEvent):void{}就是干这个调调的
XML code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns="*" creationComplete="callServlet()">
<mx:Script>
<![CDATA[
private function callServlet():void {
userRequest.send();
}
]]>
</mx:Script>
<mx:HTTPService id="userRequest" url="http://localhost/myproj/myservlet" useProxy="false" method="POST">
<mx:request xmlns="">
<username>{username.text}</username>
<emailaddress>{emailaddress.text}</emailaddress>
</mx:request>
</mx:HTTPService>
</mx:Application>