Flex在做界面开发的时候有很多优势,Flex+java的组合也越来越流行,在整合开发的过程中自然会遇到数据交互的问题,下面介绍Flex3+Java整合使用json的情况。
一、Flex3中使用json需要corelib.swc http://www.adobe.com/cfusion/exchange/index.cfm?view=sn111&extid=1078469
将corelib.swc拷贝到Flex安装目录的sdks\3.0.0\frameworks\libs下
二、Java中进行数据处理得到json格式的数据,部分代码
Java代码
01./**
02. * 浏览器直接返回信息
03. *
04. * @param content 内容
05. * @param character 编码
06. * @throws IOException
07. */
08.protected void out(String content,String character) throws IOException {
09. HttpServletResponse response = ServletActionContext.getResponse();
10. response.setContentType("text/html;charset="+character);
11. PrintWriter out = response.getWriter();
12. out.print(content);
13. out.flush();
14. out.close();
15.}
16.
17. try{
18. Author author = authorService.getAuthorByName(username);
19. if( author==null ){
20. JSONObject json = new JSONObject();
21. json.put("status","0");
22. json.put("message","用户名不存在");
23. super.out(json.toString());
24. }
25. if(author.getPassword().equals(MD5.md5(password))){
26. session.put(Symbols.SESSION_AUTHOR, author);
27. JSONObject json = new JSONObject();
28. json.put("status","1");
29. json.put("message","登录成功");
30. super.out(json.toString());
31. }
32. else{
33. JSONObject json = new JSONObject();
34. json.put("status","0");
35. json.put("message","密码错误");
36. super.out(json.toString());
37. }
39. }
40. catch(ServiceException se){
41. JSONObject json = new JSONObject();
42. json.put("status","0");
43. json.put("message","登录失败");
44. super.out(json.toString());
45. throw new Exception(se);
46. } finally {
47. }
48. return NONE;
三、Flex中请求URL得到json的数据,然后在script中解析json数据
XML/HTML代码
01.<?xml version="1.0" encoding="utf-8"?>
02.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
03. horizontalAlign="center"
04. verticalAlign="middle"
05. verticalGap="15"
06. horizontalGap="15">
08. <mx:Script>
09. <![CDATA[
10. import mx.collections.ArrayCollection;
11. import mx.rpc.events.ResultEvent;
12. import com.adobe.serialization.json.JSON;
13. import mx.controls.Alert;
14.
15. [Bindable]
16. private var photoFeed:ArrayCollection;
17.
18. private function doLogin():void {
19. trace("start send");
20. var params:Object = new Object();
21. params.username = username.text;
22. params.password = password.text;
23. loginCheck.send(params);
24. trace("end send");
25. }
26.
27. private function doCancel():void {
28. username.text = "";
29. password.text = "";
30. }
31.
32. private function loginHandler(event:ResultEvent):void {
33.
34. var rawData:String = String(event.result);
35.
36. //decode the data to ActionScript using the JSON API
37. //in this case, the JSON data is a serialize Array of Objects.
38. var arr:Array = (JSON.decode(rawData) as Array);
39. var dataArray:ArrayCollection = new ArrayCollection(arr);
40. //arraySize = dataArray.length;
41.
42. // info.text = event.result.toString();
43. var obj:Object = JSON.decode(rawData);
44.
45. if(obj.status==1){
46. var request:URLRequest = new URLRequest();
47. request.method = URLRequestMethod.GET;
48. request.url = "http://test.ntsky.com:8080/admin/posts.action";
49. // request.
50. var loader:URLLoader = new URLLoader();
51. navigateToURL(request,"_self");
52. }
53. else{
54. Alert.show(obj.message);
55. }
56. }
57.
58. ]]>
59. </mx:Script>
61. <mx:HTTPService id="loginCheck"
62. url="http://test.ntsky.com:8080/admin/login.action"
63. resultFormat="text"
65. result="loginHandler(event)" />
67. <mx:Panel x="330" y="192" width="290" height="177" layout="absolute" title="用户登录" fontSize="12" horizontalAlign="center" verticalAlign="middle">
68. <mx:Form x="10" y="10" width="253" height="90">
69. <mx:FormItem label="用户名:">
70. <mx:TextInput id="username"/>
71. </mx:FormItem>
72. <mx:FormItem label="密 码 :">
73. <mx:TextInput id="password" displayAsPassword="true"/>
74. </mx:FormItem>
75. </mx:Form>
76. <mx:Button x="65" y="103" label="登录" click="doLogin()"/>
77. <mx:Button x="144" y="103" label="取消" click="doCancel()"/>
78. </mx:Panel>
80.</mx:Application>
分享到:
相关推荐
这是本人做的Flex4 通过HttpService与Java进行交互项目,本人测试通过。本人在此声明运行环境为:MyEclipse 8.5,JDK 6,Tomcate 6,Flex 4. 本人已经将Flex4整合到Myeclipse 8.5中去了,所以这个项目是在MyEclipse ...
flex 和java的通信使用的是httpservice 但当时遇到了不知道如何获取java端的返回值给flex前端 我这个就是为了解决你烦恼而来的 绝对不忽悠你
flex4 httpservice 例子 提取xml数据
flex用httpService通信与java后台连接
Flex使用HttpService以键值对的形式发送请求,Java使用Servlet接收Flex请求,再返回数据给Flex客户端。 有文档有例子 包括java 和 flex
flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行
NULL 博文链接:https://topmanopensource.iteye.com/blog/425794
flex通过Http和WebService与服务器通信交互,交互后台采用java的Struts2做为处理后台.
简单的 flex HttpService例子,可供初学者参考
NULL 博文链接:https://lym6520.iteye.com/blog/376467
一个flex 与 java 通过HTTPService 通信的小例子,希望对flex新手有点帮助
flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.... 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService
纯flex网站前台,通过httpservice、webservice进行数据交互
FLEX _HTTPService的调用方法 显示数据的例子 QueryDataSet.xml
主要介绍了使用flex中的httpservice方法与java进行交互,需要的朋友可以参考下
Flex 使用HttpService组件发送XML数据与java交互 例子+文档
Flex HTTPService 如何给后台传递参数 包含实例绝对简单
FLEX与JSP结合并测试HTTPService与java用XML通信
FLEX与JSP结合并测试HTTPService与java用XML通信.doc