- 浏览: 1046277 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (538)
- 奇文共赏 (36)
- spring (13)
- hibernate (10)
- AOP/Aspectj (9)
- spring security (7)
- lucence (5)
- compass (3)
- jbmp (2)
- jboss rule(drools) (0)
- birt (1)
- jasper (1)
- cxf (3)
- flex (98)
- webgis (6)
- 设计模式 (1)
- 代码重构 (2)
- log4j (1)
- tomcat (9)
- 神品音乐 (1)
- 工作计划 (2)
- appfuse (1)
- svn (4)
- 寻章摘句 (3)
- eclipse (10)
- arcgis api for flex (1)
- 算法 (5)
- opengis-cs (1)
- bug心得 (13)
- 图标 (1)
- software&key (14)
- java (17)
- 搞笑视频 (13)
- sqlserver (9)
- postgresql (1)
- postgis (0)
- geoserver (5)
- 日子 (50)
- 水晶报表 (1)
- 绝对电影 (3)
- Alternativa3D (1)
- 酷站大全 (10)
- c++ (5)
- oracle (17)
- oracle spatial (25)
- flashbuilder4 (3)
- TweenLite (1)
- DailyBuild (6)
- 华山论贱 (5)
- 系统性能 (5)
- 经典古文 (6)
- SOA/SCA/OSGI (6)
- jira (2)
- Hadoop生态圈(hadoop/hbase/pig/hive/zookeeper) (37)
- 风水 (1)
- linux操作基础 (17)
- 经济 (4)
- 茶 (3)
- JUnit (1)
- C# dotNet (1)
- netbeans (1)
- Java2D (1)
- QT4 (1)
- google Test/Mock/AutoTest (3)
- maven (1)
- 3d/OSG (1)
- Eclipse RCP (3)
- CUDA (1)
- Access control (0)
- http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml (1)
- redis (1)
最新评论
-
dove19900520:
朋友,你确定你的标题跟文章内容对应???
tomcat控制浏览器不缓存 -
wussrc:
我只想说牛逼,就我接触过的那点云计算的东西,仔细想想还真是这么 ...
别样解释云计算,太TM天才跨界了 -
hw_imxy:
endpoint="/Hello/messagebr ...
flex+java代码分两个工程 -
gaohejie:
rsrsdgrfdh坎坎坷坷
Flex 与 Spring 集成 -
李涤尘:
谢谢。不过说得有点太罗嗦了。
Oracle数据库数据的导入及导出(转)
我试过不建立As对象也可以实现java对象的转换
flex相关jar包中java对象转换到AS对象中间有个ASObject(一个java类继承MAP)他把java类的属性读出放到其Map映射返回到flex前台就是ASObject了
就是说你new 一个ASOBject 按照MAP设置好属性,值 到前台就是一个ASObject对象可以直接用该对象取值
总结就是:
flex对象传到java(如果没经过绑定强转)都看成ASObject 其为一个Map型集合可以通过类属性充当Key从中取值
flex中集合传来都看成flex.messaging.io.ArrayCollection该集合实现List接口传递给flex flex可以直接识别
flexObjec <--> ASObject(flex.messaging.io.amf.ASObject) <---> javaObject
flexArray <--> ArrayCollection(flex.messaging.io.ArrayCollection) <---> javaArray(List)
例:我查询数据库返回ASObject到flex
import flex.messaging.io.ArrayCollection;
public ArrayCollection getSqlData(String sql)
{
ArrayCollection asList = new ArrayCollection(jdbc.getSqlData(sql));
return asList;
}
这是我自己写的一个类尝试转换的 时间久远那些方法测试过没我也忘了(基于Spring相关类)
flex相关jar包中java对象转换到AS对象中间有个ASObject(一个java类继承MAP)他把java类的属性读出放到其Map映射返回到flex前台就是ASObject了
就是说你new 一个ASOBject 按照MAP设置好属性,值 到前台就是一个ASObject对象可以直接用该对象取值
总结就是:
flex对象传到java(如果没经过绑定强转)都看成ASObject 其为一个Map型集合可以通过类属性充当Key从中取值
flex中集合传来都看成flex.messaging.io.ArrayCollection该集合实现List接口传递给flex flex可以直接识别
flexObjec <--> ASObject(flex.messaging.io.amf.ASObject) <---> javaObject
flexArray <--> ArrayCollection(flex.messaging.io.ArrayCollection) <---> javaArray(List)
例:我查询数据库返回ASObject到flex
import flex.messaging.io.ArrayCollection;
public ArrayCollection getSqlData(String sql)
{
ArrayCollection asList = new ArrayCollection(jdbc.getSqlData(sql));
return asList;
}
这是我自己写的一个类尝试转换的 时间久远那些方法测试过没我也忘了(基于Spring相关类)
/** * flex类未指定对应java对象 * * 将flex提交于java后台的数据对应到java对象中 * @param fromObj * @param toObj */ public static void flexObjectToVo(ASObject fromObj,Object toObj) { Assert.notNull(fromObj, "Flex对象为空"); Assert.notNull(toObj, "java对象为空"); PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性 for (Object obj : targetPds) //循环遍历属性 { PropertyDescriptor targetPd = (PropertyDescriptor)obj; if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环 continue; //有set方法的属性 vo的正常属性 try { Object value = fromObj.get(targetPd.getName()); //flex提交的值 Method writeMethod = targetPd.getWriteMethod(); if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) writeMethod.setAccessible(true); //设置到Vo writeMethod.invoke(toObj, new Object[] {value}); } catch(Throwable e) { System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName()); continue; //当前属性为空 继续赋值 } } } /** * flex类未指定对应java对象 * * 将flex提交于java后台的数据对应到java对象中 * @param fromObj * @param toObj */ public static Object getflexObjectToVo(ASObject fromObj,Object toObj) { Assert.notNull(fromObj, "Flex对象为空"); Assert.notNull(toObj, "java对象为空"); PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性 for (Object obj : targetPds) //循环遍历属性 { PropertyDescriptor targetPd = (PropertyDescriptor)obj; if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环 continue; //有set方法的属性 vo的正常属性 try { Object value = fromObj.get(targetPd.getName()); //flex提交的值 Method writeMethod = targetPd.getWriteMethod(); if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) writeMethod.setAccessible(true); //设置到Vo writeMethod.invoke(toObj, new Object[] {value}); } catch(Throwable e) { System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName()); continue; //当前属性为空 继续赋值 } } return toObj; } /** * flex类指定对应java对象 * * 将flex提交于java后台的数据对应到java对象中 * @param fromObj * @param toObj */ public static Object flexObjectToVo(ASObject fromObj) { Object toObj = null; try { toObj = Class.forName(fromObj.getType()).newInstance(); }catch (Exception e) { System.out.println("从flex指定类型中获取java类失败"+e.getMessage()); return null; } Assert.notNull(fromObj, "Flex对象为空"); Assert.notNull(toObj, "java对象为空"); PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性 for (Object obj : targetPds) //循环遍历属性 { PropertyDescriptor targetPd = (PropertyDescriptor)obj; if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环 continue; //有set方法的属性 vo的正常属性 try { Object value = fromObj.get(targetPd.getName()); //flex提交的值 Method writeMethod = targetPd.getWriteMethod(); if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) writeMethod.setAccessible(true); //设置到Vo writeMethod.invoke(toObj, new Object[] {value}); } catch(Throwable e) { System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName()); continue; //当前属性为空 继续赋值 } } return toObj; } /** * 将flex传递与java的集合转换成toObj形式并以集合返回 * @param ASOList * @param toObj * @return */ public static List flexObjectToVo(List ASOList,Object toObj) { Assert.notNull(toObj, "java对象为空"); List<Object> returnList = new LinkedList<Object>(); for ( int i = 0 ; i < ASOList.size(); i++) { ASObject asObj = (ASObject)ASOList.get(i); returnList.add(getflexObjectToVo(asObj,toObj)); } return returnList; } /** * 将结果集放到as对象 * @param asObject * @param rs */ public static void getChartFlexList(ASObject asObject,ResultSet rs) { try { int ci = rs.getMetaData().getColumnCount(); for (int i = 1 ; i <=ci ; i++) { asObject.put(rs.getMetaData().getColumnName(i), rs.getObject(i)); } } catch (SQLException e) { System.out.println("sql 异常"+e.getMessage()); } //总列数 } /** * 将结果集放到as集合中 这样实现结果集有序及重复 * @param asObject * @param rs */ public static void getChartFlexList(ArrayCollection asList,ResultSet rs) { try { int ci = rs.getMetaData().getColumnCount(); for (int i = 1 ; i <=ci ; i++) { ASObject asObject = new ASObject(); asObject.put(rs.getMetaData().getColumnName(i), rs.getObject(i)); asList.add(asObject); } } catch (SQLException e) { System.out.println("sql 异常"+e.getMessage()); } //总列数 }
发表评论
-
ActionScript 3.0 性能优化小知识
2010-07-30 14:12 1036http://xinsync.xju.edu.cn/in ... -
Flex企业级UI权限控制
2010-07-28 16:14 1302http://www.pin5i.com/showtopic- ... -
flex4中PopUpManager在module中有问题
2010-06-24 11:10 3144flex4中module加载module后flex4中 a ... -
Flex 开发: 类的反射
2010-06-24 10:56 1272http://www.ibm.com/developerwor ... -
Problems with ByteArray.writeObject()
2010-05-19 21:47 1726http://www.actionscript.org/for ... -
利用 E4X解决 XML 处理的性能问题
2010-05-19 21:11 1753http://www.blogjava.net/rosen/a ... -
正在安装的adobe flash player版本不是最新的版本
2010-04-22 09:56 2458打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\ ... -
AS3 优化 之 FOR内循环
2010-02-10 15:39 1566写游戏只要有思路,就能实现,但这也只是从功能角度出发,能不能有 ... -
flex模块切换时导致对象不正确序列化的解决办法
2009-12-02 09:08 1629http://lkfnn.iteye.com/blog/506 ... -
漂亮的登陆
2009-11-19 16:32 1162http://dougmccune.com/360Flex_A ... -
Download all 177 Flash Effects Source Files .fla
2009-11-13 09:27 1225http://www.jeffjoneslive.com/Fl ... -
flex如何接受其他页面Post过来的数据
2009-10-10 11:15 2559问题描述: 有个程序需要调用我的flex页面,需要给我传 ... -
Change font size in the whole app with Ctrl+/-
2009-10-09 10:06 1203http://feedproxy.google.com/~r/ ... -
flex delete关键词和类成员
2009-10-09 09:01 1414flash中delete关键词用来移除定义的变量,并不能从内存 ... -
Flex HTTPService如何给后台传递参数
2009-10-09 08:56 1525http://blog.csdn.net/joeyshi/ar ... -
FLEX Builder compiler arguments 的设置
2009-09-28 08:20 1659http://flash.9ria.com/thread-18 ... -
12 Best Adobe AIR Applications for Web Designers
2009-09-25 08:20 107912 Best Adobe AIR Applications ... -
做网页如何改变IE地址栏的显示IE图标
2009-09-23 16:55 2705这个问题的解决其实在flex之外 修改index.templa ... -
Flex设置html(页面标题)title问题
2009-09-23 15:31 3289如果你是一个整体系统用了同一个标题:可以修改模板页index. ... -
flex中文问题,访问中文路径问题
2009-09-23 14:36 1204本文最先发表在本人个 ...
相关推荐
2. **对象克隆**:克隆对象是开发中常见的需求,asobj的克隆方法能确保新对象与原始对象在值上相同,但不共享引用,这在需要避免副作用的情况下特别关键。 3. **对象查找与删除**:asobj库提供了查找对象中特定属性...
同时,`AsArray`和`AsObj`方法则用于处理JSON数组和对象。对于遍历JSON数据,`ForEach`方法是不可或缺的,它允许开发者方便地迭代JSON对象或数组的所有元素。 在Delphi XE中,XSuperObject不仅提供了基础的JSON操作...
engine->RegisterObjectType("MyClass", sizeof(MyClass), asOBJ_REF); engine->RegisterObjectBehaviour("MyClass", asBEHAVE_CONSTRUCT, "void f()", asMETHOD(MyClass, MyClass), asCALL_THISCALL); ``` 2. *...
2. 使用`LoadFromData`或`LoadFromStream`方法将JSON字符串或流加载到`ISuperObject`实例中。例如,如果你有一个JSON字符串`JSonStr`: ```delphi JSON.LoadFromData(JSonStr); ``` 3. 解析后的JSON数据现在存储在`...
2. **Pascal中的JSON处理库**: Delphi提供了几个流行的库来处理JSON,如`SuperObject`, `JsonFast`, `Indy JSON`等。这些库提供了方便的API,使得在Pascal中解析JSON字符串为对象,或者将对象序列化为JSON字符串变...