我将一个Java / BlazeDS服务器组合在一起,该服务器创建了一个通用的GridBean对象。此GridBean包含:
List<ColumnDef>
其中ColumnDef包含列标题,字段名称List<Object>
我的对象是包含PropertyChangeSupport
然后我创建了一个Flex应用程序,它使用RemoteObjectServiceWrapper
来调用我的java服务器,抓取GridBean
,从DataGrid
创建一些columnDefs
列,然后设置dataProvider
作为对象列表。好到目前为止,一切都呈现。
现在,我真正想做的是:在flex端设置某种事件处理程序,这样如果在datagrid中编辑了我的item / object,我会向java发送一条消息,说'编辑了这个这个项目的字段'。最终目标是使用一种很好的通用方法在flex数据网格中从Java渲染任何对象列表。
答案 0 :(得分:0)
实际上,您正在讨论ManagedObjects,BlazeDS本身不支持ManagedObjects。 (它可作为LCDS的开箱即用功能提供。)
但是,有第三方工具可以为您提供此功能。
Farata系统提供Clear Builder(我相信通过生成的代码提供CRUD支持)。
还有dpHibernate(我应该透露我是其中一个主要的开发者)。
使用dpHibernate,您可以实现的目标是:
public function updateObject():void
{
var book:Book; // loaded from the server earlier in the application
book.title = "Clean Code";
book.save();
}
您的实体类(在此示例中为Book
)仅需要实现一些简单的接口方法(主要处理标识的概念),并且不需要任何生成的代码。
这个更新功能的完整工作示例here。