English 中文(简体)
如何在Grails上使用Ext GWT(GXT)共享Domain对象?
原标题:
  • 时间:2008-10-26 22:50:00
  •  标签:

我的应用程序在逻辑上被分为服务器和客户端。服务器包含我的 Grails 领域对象和控制器;客户端则包含我的 Ext GWT 类,用于构建所有的 UI 页面。

对于UI请求,我使用AJAX调用控制器方法,例如返回一个JSON结构的域对象列表。

遵循DRY原则,我不想在服务器上将领域数据“序列化”为JSON字符串,然后在客户端将其解析为另一个结构 - 我想利用我已经拥有的领域对象,这样我就不必在添加,更改或删除新字段时更改多个位置。

问题是:这是一个好方法吗?

如果是的话,如何最好地将 .groovy 域对象提供给“客户端” Ext GWT Java 类?

如果不是,为什么不好,你会给出什么建议?

最佳回答

没有一个好的方式 - 你需要一个可GWT序列化的Java对象。我唯一看到的真正的解决方案是编写一个插件(或添加到GWT插件)来自动生成数据传输对象,也许在grails领域对象中使用注释。

类似的方法被用于自动生成GWT插件中的RPCAsync接口 - 在gwt插件目录中查看GwtGrailsPlugin.groovy,大约在第133行左右开始。

你可以连接到那里(或直接修改那个文件,可能更容易),并插入一些代码来生成数据传输文件。另一个好处可能是,你可以将数据传输对象细分,以便私人数据(比如密码!)不被传输。

问题回答

或者,您可以将数据作为 JSON 或 XML 发送到客户端。您可以为您的服务器端创建一个 REST API。





相关问题
热门标签