【问题标题】:Best data binding solution for GWTGWT 的最佳数据绑定解决方案
【发布时间】:2010-09-28 15:33:36
【问题描述】:

您是否曾经为 GWT 使用过众多不成熟的数据绑定解决方案之一?如果有,效果如何?

我想停止为 GWT 滚动我自己的绑定,但在数据绑定领域没有明显的赢家。

我更喜欢使用有未来的东西,例如GWT 孵化器,但那里什么都没有。

我使用 GWTDesigner 并喜欢它,但它似乎也没有解决方案。

这是一个非常基本的缺失功能。您知道 GWT 团队是否计划为此添加支持?那样的话,也许我会等。

谢谢

【问题讨论】:

    标签: java data-binding gwt


    【解决方案1】:

    几分钟前我刚刚在一个邮件列表中读到它,所谓的GWTEventService 1.0 已经发布。我不完全确定,如果那是你想要的,但这对我来说听起来很有希望。

    让我引用该网站:

    GWTEventService 是一个基于事件的客户端-服务器通信框架。它使用 GWT-RPC 和 Comet / server-push 技术。 客户端提供了一个高级 API,可以将侦听器注册到服务器,就像 GUI 组件一样。事件可以添加到服务器端的上下文/域中,客户端的侦听器会收到有关传入事件的通知。服务器端完全独立于客户端实现并且是高度可配置的。可以定义域来决定哪些事件对不同的上下文很重要。

    也许这是适合您的解决方案。我会试试看的。

    【讨论】:

      【解决方案2】:

      SmartGWT (http://www.jroller.com/sjivan/entry/smartgwt_1_0_released) 是产品 smartclient 的 GWT API。 他们有一个很好的数据绑定解决方案,因为它在构建时考虑了服务器端集成。但缺点是它不是一个纯原生的 GWT 框架。它是另一个产品(智能客户端框架)的 JSNI 包装器。

      【讨论】:

      • 更多信息:数据绑定目前需要 pro 许可证,每位开发人员 745 美元。
      【解决方案3】:

      Gilead,以前的 Hibernate4GWT,“定义了一个 PersistentRemoteService 类,继承自 RemoteServiceServlet 以处理无缝持久实体管理。”几年来,它一直在积极开发中。

      【讨论】:

      • 这让您可以将 JDO 注释的对象从服务器传递到客户端,但仍然无法从对象构建 UI,也没有验证等。
      • 嗯,最初的问题不是关于构建 UI 或验证等,而是关于数据绑定。一个和我一起工作的伙伴为从标准 Widget 派生的小部件编写了一个容器类;这些派生的小部件引用属性名称,容器类通过属性名称处理数据库交互。不过,这似乎是另一个问题的答案。
      【解决方案4】:

      如果它的 UI 数据绑定到模型(即文本框绑定到某个模型对象的属性),那么 GWT 有一个称为 UIBinder 的库功能。它显然还没有完全准备好用于生产(因此未发布),但 google wave 团队正在使用它(看起来它工作得很好)。查看此页面以获取一些信息http://code.google.com/p/google-web-toolkit-incubator/wiki/UiBinder

      如果您谈论的是 GWT RPC 从服务器返回模型对象(例如休眠对象),那么其他地方提到的Gilead 可能值得一看——尽管我从未有过任何个人经验。

      还有另一种方法,那就是使用 Javascript Object Overlays 将 json 转换为它们的等效类模型,以便在 GWT 中使用(适用于像 grails 这样可以轻松生成 json 的框架,但它们的域模型不兼容 RPC)。查看这些博客文章,了解有关 http://raibledesigns.com/rd/entry/json_parsing_with_javascript_overlay(和 http://googlewebtoolkit.blogspot.com/2008/08/getting-to-really-know-gwt-part-2.html)的一些提示

      【讨论】:

      • 据我了解,UiBinder 是关于将 GWT UI 从声明性(例如 XML)格式组合在一起,而不是数据绑定。
      • 如果你在谈论直接从服务器绑定,那么不——它不像现有的绑定框架——Gilead 很可能是你想要的东西。 UIBinder 绑定到您可以在运行时插入的 UI 变量 - 这是非常强大的,并且可以成为您在上述评论中提到的绑定框架的基础。
      【解决方案5】:

      【讨论】:

        【解决方案6】:

        使用 google-web-toolkit-incubator http://code.google.com/p/google-web-toolkit-incubator/wiki/Downloads?tm=2 进行数据绑定。 uface 没有编译版本,他们的源代码不会按照他们的指示编译。 (上面这个条目是指 uface)。

        【讨论】:

          【解决方案7】:

          【讨论】:

            【解决方案8】:

            通过http://www.gdevelop.com/w/gwtxp/查看gwtXP。

            gwtXP 允许您在 XML 中声明 UI 元素、数据绑定和操作处理程序。例子:

            • 声明 UI 元素:
            • 声明数据绑定(使用 Eclipse 数据绑定):
            • 同时支持值绑定和列表绑定。
            • 声明操作处理程序:

            20010 年 3 月 6 日更新:请参阅http://www.gdevelop.com/w/blog/2010/03/06/data-binding-in-gwt/ 的帖子

            【讨论】:

              【解决方案9】:

              如果现在对此有任何疑问,您应该使用 GWT 编辑器:

              http://www.gwtproject.org/doc/latest/DevGuideUiEditors.html

              将来某个时候也会支持 jsr 303 验证。

              【讨论】:

                【解决方案10】:

                我建议你试试 HexaBinding,它是非侵入性的,只专注于 dara 绑定。这是链接:https://github.com/ltearno/hexa.tools/blob/master/hexa.binding/README.md

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-04-12
                  • 1970-01-01
                  • 2019-09-20
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多