具有多个入口点的GWT MVP

具有多个入口点的GWT MVP,gwt,mvp,Gwt,Mvp,我们有一个具有多个入口点的应用程序。每个入口点都包含一个MVP配置,其中包含自己的PlaceHistoryHandler、PlaceHistoryMapper和PlaceController。根据历史处理程序的配置顺序,位置处理方式是重叠的。我认为出现这个问题是因为PlaceHistoryHandler的实现在PlaceHistoryMapper找不到位置时调用PlaceController.goTo(NOWHERE),因为这个位置与另一个入口点的PlaceHistoryMapper关联。我怎样

我们有一个具有多个入口点的应用程序。每个入口点都包含一个MVP配置,其中包含自己的PlaceHistoryHandler、PlaceHistoryMapper和PlaceController。根据历史处理程序的配置顺序,位置处理方式是重叠的。我认为出现这个问题是因为PlaceHistoryHandler的实现在PlaceHistoryMapper找不到位置时调用PlaceController.goTo(NOWHERE),因为这个位置与另一个入口点的PlaceHistoryMapper关联。我怎样才能解决这个问题?对多个入口点使用MVP是正确的吗

进一步信息

托马斯,谢谢你的澄清。我们的场景是一个服务器端OSGI应用程序,其中应用程序模块是热部署的,并且包含它们自己的GWT视图和入口点。 我们的主客户机GWT应用程序有一个动态的侧菜单,超链接指向与外部入口点相关联的令牌,外部入口点在主区域中呈现视图

  SIDE MENU
      |
      V
  -------------------------------------------
  |  A1  |                                  |
  |------|                                  |
  |  A2  |                                  |
  |------|                                  |
  |  B1  |                                  |
  |------|         MAIN REGION              |
  |  B2  |                                  |
  |------|                                  |
  |  C1  |                                  |
  |------|                                  |
  |  C2  |                                  |
  -------------------------------------------
解决此类应用的正确方法是什么?

您有两种选择:

(A)

不要将PlaceController用于侧菜单。使其成为一个小部件,其中包含指向模块中位置的链接。您可以在每个模块中包含此小部件。单击菜单项时,将重新加载整个页面。这样,浏览器历史记录将按预期工作

(B)

如果你不能调整你的应用程序,考虑使用启动板/开始菜单方法。您可以使用一个视图创建主入口点,该视图显示用户可用的应用程序的漂亮菜单。每个菜单项基本上都是指向相应模块(入口点)的起始URL的链接。当用户单击它时,此模块将加载并接管整个屏幕。我还将为每个模块添加一个图标,以返回启动板

这样,用户可以为启动板添加书签,也可以直接为任何模块添加书签

请注意,在这种方法中,URL历史记录将按预期工作,即如果用户进入Launchpad->A1->A2->Launchpad->B1等,用户可以点击后退按钮,浏览器将返回一步

或者,每个模块都可以在新的浏览器选项卡中打开。也许您可以给用户一个选项,让他们在“首选项”中的某个位置选择相同的选项卡或新选项卡


请注意,智能手机和平板电脑的所有用户都熟悉启动板/开始菜单方法,这一方法也适用于Mac操作系统,很快也适用于Windows 8。另一个好处是,每个模块/应用程序都有更多的屏幕空间可供使用。

您是如何将它们重叠的?当您将用户从一个入口点发送到另一个入口点时会发生什么情况?简短的回答:不要这样做,那不会起作用;长答覆: