如何在GWT中跨模块访问数据?

时间:2013-09-13 07:02:07

标签: gwt

我有两个GWT模块,它有自己的入口点ModuleA和ModuleB。我正在使用Window.assign()从ModuleA移动到ModuleB。在ModuleA中设置一个变量值。如何从ModuleB访问相同的值?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我写了几个答案,可以帮助你解决这个问题。

由于你不能在两个编译模块之间共享纯java:GWT: How to share a java Object (ie: EventBus) between two modules,我建议使用jsni:How to communicate two modules in GWT导出方法。但我会使用gwt-exporter或gwt-query来避免手工编写js,这通常是错误的来源:Calling GWT Java function from JavaScript

请注意,这些解决方案仅适用于两个模块都加载到同一个html中的情况。

如果要将值传递给下载实际值的其他页面,可以将这些值附加到新URL并在第二个应用程序中读取它:

  // Module A
  Window.Location.assign("module_B.html?msg=whatever");

  // Module B
  String msg = Window.Location.getParameter("msg");

答案 1 :(得分:0)

IMO最好的方法是在主页中用纯JavaScript实现观察者/可观察模式,并在应用程序中使用JSNI来注册处理程序/ fire事件。