通用DataGrid,用于编辑存储在服务器上的对象

时间:2011-06-23 17:23:40

标签: java flex blazeds

我将一个Java / BlazeDS服务器组合在一起,该服务器创建了一个通用的GridBean对象。此GridBean包含:

  • List<ColumnDef>其中ColumnDef包含列标题,字段名称
  • List<Object>我的对象是包含PropertyChangeSupport
  • 的java pojo

然后我创建了一个Flex应用程序,它使用RemoteObjectServiceWrapper来调用我的java服务器,抓取GridBean,从DataGrid创建一些columnDefs列,然后设置dataProvider作为对象列表。好到目前为止,一切都呈现。

现在,我真正想做的是:在flex端设置某种事件处理程序,这样如果在datagrid中编辑了我的item / object,我会向java发送一条消息,说'编辑了这个这个项目的字段'。最终目标是使用一种很好的通用方法在flex数据网格中从Java渲染任何对象列表。

1 个答案:

答案 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