使用GWT平台将参数从一个演示者传递到另一个演示者

使用GWT平台将参数从一个演示者传递到另一个演示者,gwt,gwt-platform,Gwt,Gwt Platform,我正在尝试将已加载到演示者上的参数传递给另一个演示者,例如,某个客户端的汽车 最好的方法是什么?使用守门员?有什么例子吗 PS:我将DI与gin和GWT平台框架一起使用。如果您想减少耦合,应该创建一个自定义事件,carloadeEvent或其他什么。使用GWTP插件,效果非常好。 然后让想要捕获该事件的演示者实现CarLoadedHandler,并在其onBind()方法中,使其注册到eventBus: @覆盖 受保护的void onBind(){ super.onBind(); registe

我正在尝试将已加载到演示者上的参数传递给另一个演示者,例如,某个客户端的汽车

最好的方法是什么?使用守门员?有什么例子吗


PS:我将DI与gin和GWT平台框架一起使用。

如果您想减少耦合,应该创建一个自定义事件,
carloadeEvent
或其他什么。使用GWTP插件,效果非常好。 然后让想要捕获该事件的演示者实现
CarLoadedHandler
,并在其
onBind()
方法中,使其注册到eventBus:

@覆盖
受保护的void onBind(){
super.onBind();
registerHandler(getEventBus().addHandler(carloadeEvent.TYPE,this));
}

最后,当汽车装载时,触发一个事件:

carloadeEvent.fire(getEventBus(),myLoadedCar)


如果在触发事件时应加载演示者,则可以使用
ProxyEvent
。查看和。

请参阅GWTP文档和博客:


如果第二个演示者的状态应为可书签状态,则可以使用
prepareFromRequest(PlaceRequest)
处理参数。在您的第一个演示者中,您使用
PlaceManager.revealPlace(PlaceRequest)
和新生成的
PlaceRequest
,其中包含参数。与Mikael达成一致。我在客户端包中的代码中有几个示例。我也使用了GWT平台。如果我的另一个演示者还不可见,我该怎么做?哈哈,我不是这么看的!如果下一个演示者还没有被实例化,我只会将汽车的ID作为URL参数传递(请参见z00bs对您的问题的评论),然后请求将汽车发送到服务器。哈哈,是的,我没有正确解释我的问题,我只是不想多次加载它。。你还有其他建议吗?我决定通过PlaceRequest传递id,它成功了,而且,考虑到其他事情,比如保持对象更新,我将使用这种方式。好吧,就像没人说什么一样,我会投票支持唯一的答案。谢谢你,米凯尔·库齐奇。