转载:http://cs.ntsky.com/flex3-java-json.html
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代码
/**
* 浏览器直接返回信息
*
* @param content 内容
* @param character 编码
* @throws IOException
*/
protected void out(String content,String character) throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset="+character);
PrintWriter out = response.getWriter();
out.print(content);
out.flush();
out.close();
}
try{
Author author = authorService.getAuthorByName(username);
if( author==null ){
JSONObject json = new JSONObject();
json.put("status","0");
json.put("message","用户名不存在");
super.out(json.toString());
}
if(author.getPassword().equals(MD5.md5(password))){
session.put(Symbols.SESSION_AUTHOR, author);
JSONObject json = new JSONObject();
json.put("status","1");
json.put("message","登录成功");
super.out(json.toString());
}
else{
JSONObject json = new JSONObject();
json.put("status","0");
json.put("message","密码错误");
super.out(json.toString());
}
}
catch(ServiceException se){
JSONObject json = new JSONObject();
json.put("status","0");
json.put("message","登录失败");
super.out(json.toString());
throw new Exception(se);
} finally {
}
return NONE;
三、Flex中请求URL得到json的数据,然后在script中解析json数据
XML/HTML代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
verticalAlign="middle"
verticalGap="15"
horizontalGap="15">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import com.adobe.serialization.json.JSON;
import mx.controls.Alert;
[Bindable]
private var photoFeed:ArrayCollection;
private function doLogin():void {
trace("start send");
var params:Object = new Object();
params.username = username.text;
params.password = password.text;
loginCheck.send(params);
trace("end send");
}
private function doCancel():void {
username.text = "";
password.text = "";
}
private function loginHandler(event:ResultEvent):void {
var rawData:String = String(event.result);
//decode the data to ActionScript using the JSON API
//in this case, the JSON data is a serialize Array of Objects.
var arr:Array = (JSON.decode(rawData) as Array);
var dataArray:ArrayCollection = new ArrayCollection(arr);
//arraySize = dataArray.length;
// info.text = event.result.toString();
var obj:Object = JSON.decode(rawData);
if(obj.status==1){
var request:URLRequest = new URLRequest();
request.method = URLRequestMethod.GET;
request.url = "http://test.ntsky.com:8080/admin/posts.action";
// request.
var loader:URLLoader = new URLLoader();
navigateToURL(request,"_self");
}
else{
Alert.show(obj.message);
}
}
]]>
</mx:Script>
<mx:HTTPService id="loginCheck"
url="http://test.ntsky.com:8080/admin/login.action"
resultFormat="text"
result="loginHandler(event)" />
<mx:Panel x="330" y="192" width="290" height="177" layout="absolute" title="用户登录" fontSize="12" horizontalAlign="center" verticalAlign="middle">
<mx:Form x="10" y="10" width="253" height="90">
<mx:FormItem label="用户名:">
<mx:TextInput id="username"/>
</mx:FormItem>
<mx:FormItem label="密 码 :">
<mx:TextInput id="password" displayAsPassword="true"/>
</mx:FormItem>
</mx:Form>
<mx:Button x="65" y="103" label="登录" click="doLogin()"/>
<mx:Button x="144" y="103" label="取消" click="doCancel()"/>
</mx:Panel>
</mx:Application>
分享到:
相关推荐
在处理JSON交互时,日志记录对于调试和诊断问题至关重要。 使用这些库,开发者可以在Flex客户端和Java服务器之间建立JSON数据交换的桥梁。在Flex端,可以使用ActionScript 3的JSON类来序列化和反序列化数据。而在...
### Flex使用json和xml数据交互:深度解析与实践 #### 引言 在现代Web开发领域,数据交换格式的选择对于实现高效、灵活的前后端通信至关重要。JSON(JavaScript Object Notation)与XML(Extensible Markup ...
总的来说,Flex通过`RemoteObject`组件与Java进行JSON数据交互,提供了一种高效且直观的方式,使客户端和服务器端能紧密协作,完成复杂的业务逻辑。理解并熟练掌握这种技术对于Flex和Java开发者来说至关重要。
标题 "Flex+Struts2+JSON实现Flex和后台的HTTP Service请求" 描述了一种技术方案,用于在Flex前端和Java后端之间建立通信。这种通信是通过HTTP Service请求完成的,利用Struts2框架处理业务逻辑,并通过JSON格式交换...
在本压缩包"Flex实例 Flex基础 Web+Flex+LCDS Flex跟Java交互"中,我们可以深入探讨Flex的基础知识、Web与Flex的集成、LCDS的使用以及Flex如何与Java进行数据交互。 1. **Flex基础**:Flex提供了一整套组件库,包括...
这些格式可以被 Flex 的 XML 解析器和 JSON 库处理,也可以在 Java 侧使用 JAXB 或 JSON 库进行序列化和反序列化。 5. **事件驱动通信**: 使用 BlazeDS 或类似工具,可以实现 Flex 客户端和 Java 服务器之间的...
标题中的“Flex使用JSON格式与Java通信”是指在开发富互联网应用程序(Rich Internet Application, RIA)时,采用Adobe Flex作为前端技术,通过JSON(JavaScript Object Notation)数据交换格式与后端Java服务器进行...
总之,Flex与Java等后端系统进行数据交互时,通过使用FlexJSON这样的库,可以方便地进行JSON的序列化和反序列化,实现数据的高效传输。理解并掌握这些工具和技巧,对于开发健壮的Flex应用程序至关重要。
Java_Flex技术结合了Java的强大后端处理能力和Flex的富互联网应用程序(RIA)前端展示功能,为开发跨平台、交互性强的Web应用提供了强大的解决方案。本文将深入探讨Java与Flex的集成,以及如何利用这两项技术的优势...
Flex应用通过HTTP请求与Java服务器交互,服务器则根据请求提供XML或JSON格式的数据,Flex再负责数据的解析和展示。这种前后端分离的架构,提高了系统的可维护性和扩展性。 #### 示例分析:Flex应用与XML数据的交互 ...
### Flex使用JSON格式与Java通信知识点详解 #### 一、背景介绍 随着互联网技术的发展,跨平台、跨语言之间的通信成为开发中常见的需求之一。在本文档中,我们将深入探讨如何利用Flex框架通过JSON(JavaScript ...
10. **学习资源**:提供的“Flex与Java通讯-1.exe”和“Flex与Java通讯-2.exe”很可能是教学视频,而“flex连接java.TXT”可能是配套的代码示例或笔记,帮助学习者深入理解并实践Flex与Java的交互技术。 以上是关于...
5. **Flash Remoting**:虽然不是Flex3与Java通信的首选方式,但Flash Remoting(通过NetConnection和NetStream类)仍然可用于与服务器端进行实时数据交换,不过它通常用于Flash Player而不是Flex。 6. **Security*...
2. 创建Flex客户端:使用Flex Builder或Flash Builder创建Flex项目,定义与Java服务交互的MXML组件或ActionScript类。 3. 定义服务代理:在Flex项目中,通过BlazeDS的Services面板,可以自动生成与Java服务对应的...
总的来说,这个"flex与java远程传值demo"展示了如何使用Flex、BlazeDS和Java来实现高效的客户端-服务器通信。通过这种方式,开发者可以创建出功能丰富的Web应用,同时享受到Flex的交互性和Java的后端处理能力。在...
通过以上对《Flex 3 with Java》这本书的介绍和分析,我们可以看出本书旨在帮助开发者全面了解如何使用 Flex 3 和 Java 构建高性能的富互联网应用程序。无论是初学者还是有一定经验的开发者,都能从中受益匪浅。
在本篇讨论中,我们将深入探讨如何使用Granite实现Flex与Java的交互,并围绕这个主题展开相关知识点。 1. **Flex简介**: Flex是一种用于创建RIA(Rich Internet Applications)的开源框架,基于ActionScript语言...
总结,使用BlazeDS整合Flex和Java能实现高效的前后端交互,但同时也需要注意性能优化、安全配置以及错误处理等多个方面。通过熟练掌握BlazeDS的使用,开发者可以构建出响应快速、功能强大的富互联网应用。
Flex是用于构建交互式、图形丰富的Web应用的开源框架,而Java则提供了稳定的服务器端处理和数据管理功能。通过这种整合,开发者可以创建出具有高度用户体验的前端,同时利用Java的稳定性和可扩展性来处理复杂的业务...