在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>