GWT的最佳数据绑定解决方案

时间:2008-12-28 22:37:39

标签: java data-binding gwt

你有没有使用GWT的众多半生不熟的数据绑定解决方案之一?如果是这样,它的效果如何?

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

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

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

这是一个非常基本的缺失功能。你知道GWT团队是否计划增加对此的支持?在那种情况下,也许我会等。

由于

10 个答案:

答案 0 :(得分:8)

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

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

在未来的某个时刻,也将支持jsr 303验证。

答案 1 :(得分:4)

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

如果您正在谈论GWT RPC从服务器返回模型对象(例如hibernate对象),那么其他地方提到的Gilead可能值得关注 - 尽管我从未有过任何个人经历。

还有另一种方法,即使用Javascript Object Overlays将json转换为等效的类模型,以便在GWT中使用(适用于可以轻松生成json的grails等框架,但是它们的域模型不兼容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

的一些提示

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

让我引用该网站:

  

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

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

答案 6 :(得分:0)

Gilead,以前称为Hibernate4GWT,“定义了一个PersistentRemoteService类,继承自RemoteServiceServlet以处理无缝持久的实体管理。”它已经进行了多年的积极开发。

答案 7 :(得分:0)

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

gwtXP允许您以XML格式声明UI元素,数据绑定和操作处理程序。例子:

  • 声明UI元素:< g:标签文字=“用户名:”/>
  • 声明数据绑定(使用Eclipse数据绑定):< g:textBox text =“$ {user.userName}”/>
  • 支持值绑定和列表绑定。
  • 声明操作处理程序:< g:button text =“Save”onClick =“#{saveUser}”/>

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

上的帖子