ajax - 如何使用 Ext GWT (GXT) 在 Grails 上共享域对象?

标签 ajax grails gwt-ext

我的应用程序在逻辑上分为服务器,其中包含我的 Grails 域对象和 Controller ;和客户端,在那里我有构建所有 UI 页面的 Ext GWT 类。

对于 UI 请求,我使用 AJAX 调用对 Controller 方法进行返回,例如,将域对象列表作为 JSON 结构返回。

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

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

如果是,如何使 .groovy 域对象在“客户端”Ext GWT Java 类上可用的最佳方式是什么?

如果没有,为什么它不好,你会建议什么?

最佳答案

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

类似的方法被用于在 gwt 插件中自动生成 RPCAsync 接口(interface) - 请参阅 gwt 插件目录中的 GwtGrailsPlugin.groovy,第 133 行左右是开始。

您可以 Hook (或者直接修改该文件,可能更容易)并插入一些代码来生成数据传输文件。另一个好处可能是您可以细化数据传输对象,以便私有(private)数据(如密码!)不会被传输。

关于ajax - 如何使用 Ext GWT (GXT) 在 Grails 上共享域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/238746/

相关文章:

javascript - 无需 parseJSON 即可获取 highcharts 数据

php - 堆叠ajax请求

java - 组合 TimeItem 和 DateItem 值

java - gwt -ext 中的窗口关闭问题

ajax - "405 Method Not Allowed"仅在 Firefox 6 中调用 WCF 服务时不在 IE 9 中

php - 使用 AJAX(PHP 和 JQuery)聊天心跳

xml - Grails渲染列表

由于 Spring bean 未注入(inject) BootStrap,Grails 3 独立应用程序无法启动

Grails:集成测试中的事务

gwt - gwt-ext 和 ext-gwt 的区别