在我们的GWT Web应用程序中,我们达到了一个状态,我们想要删除所有内容,并且只显示应用程序已停止的大量警告。
我们无法找到办法。我们基本上需要的是:
简而言之,我们想要杀死整个DOM并只添加一个段落。
我们尝试了很多不同的
组合RootPanel.get().clear()
但发现没有可靠的方法去做我们想要实现的目标。任何想法如何做到这一点?
答案 0 :(得分:1)
首先,您必须接受服务器活动。这是一个很好的做法,使您的应用程序健壮。 为了使其统一,您可能希望对服务实现的任何请求作出适当的例外响应。例如,如果在删除用户访问应用程序的权限时会发生这种情况,那么除了为relogin或其他已批准的操作所做的请求之外,它应该为所有请求抛出某种安全例外。
您可以在每种服务方法中手动执行此操作,也可以使用过滤器来处理该操作。 Spring Security等框架提供了一种配置安全过滤器的简便方法。
完成服务器端并确认UI无法穿透服务器的安全层后,您可以对UI进行更改。有不同的方法可以制作漂亮的阻挡屏幕。
通常,我在代码中执行以下操作来创建内容,并且可以使用clear()方法从视口中删除视口或内容。无需刷新或重新验证。
Viewport viewport = new Viewport();
viewport.setLayout(new FitLayout());
viewport.add(new MainPanel());
RootPanel.get().add(viewport);
不确定您的布局如何。如果您能够为您的场景提供代码示例,我可以向您展示如何执行您需要的操作。因为在我的例子中它运作得很好。
答案 1 :(得分:1)
Window.Location.replace("URL-OF-A-STATIC-HTML")
Javadoc:
用新的URL替换当前的URL。所有GWT状态都将丢失。 在浏览器的历史记录中,当前URL将被新的替换 URL。
如果您想重新激活GWT应用,请在该HTML页面上添加一个链接。
答案 2 :(得分:0)
在cookie中存储信息或说出标记,当您加载应用程序时,请查看该cookie是否已设置,是否已设置显示消息或加载应用程序。现在,只要您想完全停止应用程序,请设置cookie并重新加载应用程序。