2

在我们的 GWT Web 应用程序中,我们达到了想要删除所有内容并只显示应用程序已停止的大警告的状态。

我们无法找到一种方法来做到这一点。我们基本上需要的是:

  • 强制 GWT 停止所有处理并中止任何现有的 RPC 消息
  • 强制所有注册的事件变为非活动状态
  • 清除页面中所有可见内容
  • 设置单个段落/文本

简而言之,我们想杀死整个 DOM 并只添加一个段落。

我们尝试了许多不同的组合

RootPanel.get().clear()

但找不到可靠的方法来做我们想要实现的目标。任何想法如何做到这一点?

4

3 回答 3

1

首先,您必须进行服务器活动。这是一个很好的做法,它可以使您的应用程序健壮。为了使其统一,您可能希望以适当的例外来响应对您的服务实现提出的任何请求。例如,如果这就是当用户被删除访问应用程序的权限时发生的情况,那么它可能应该为所有请求抛出某种安全异常,除了那些为重新登录或其他批准的操作而发出的请求。

您可以在每种服务方法中手动执行此操作,也可以使用过滤器来处理它。Spring Security 等框架提供了一种配置安全过滤器的简单方法。

完成服务器端并确认 UI 无法穿透服务器的安全层后,您可以对 UI 进行更改。有不同的方法可以制作漂亮的屏蔽屏幕。

一般来说,我在我的代码中执行以下操作来创建内容,并且可以使用 clear() 方法从视口中删除视口或东西。无需刷新或重新验证。

    Viewport viewport = new Viewport();
    viewport.setLayout(new FitLayout());
    viewport.add(new MainPanel());
    RootPanel.get().add(viewport);

不知道你的布局如何。如果您能够为您的场景提供代码示例,我可以向您展示如何做您需要的事情。因为在我的示例中它工作得很好。

于 2013-02-08T17:06:28.893 回答
1
Window.Location.replace("URL-OF-A-STATIC-HTML") 

爪哇文档:

用新的 URL 替换当前 URL。所有 GWT 状态都将丢失。在浏览器的历史记录中,当前 URL 将被新 URL 替换。

如果您想重新激活 GWT 应用程序,请在该 HTML 页面上放置一个链接。

于 2013-02-10T00:07:21.003 回答
0

在 cookie 中存储信息或说出标志,当您加载应用程序时,请查看是否设置了该 cookie,如果设置了则显示消息或加载应用程序。现在,每当您想完全停止应用程序时,设置 cookie 并重新加载应用程序。

于 2013-02-08T17:05:45.073 回答