如何防止代码在gwt中触发历史标记后执行



我正在使用gwtp框架开发gwt2.3应用程序。在这个应用程序中,我有一个登录(索引)页面,这是由客户端模块绑定。

bindConstant().annotatedWith(DefaultPlace.class).to(NameTokens.login);

现在成功登录后,将触发一个新的名称令牌名称用户页面。

     History.newItem(NameTokens.userconsole,true);

现在我有我的历史处理程序如下:

公共类NameTokenHandler实现ValueChangeHandler {

@Override
public void onValueChange(final ValueChangeEvent<String> event) {
    System.out.println("Nothing to do");
}

}

我在入口点类中添加了如下的History:

History.addValueChangeHandler(new NameTokenHandler());

现在我已经重写了onValueChange方法&我留空了。

所以当应用程序首先加载或任何其他名称令牌触发时,它应该首先调用onValueChange因为这个方法中没有代码,所以不应该加载任何东西。

但在应用中它工作得很好。即使在onValueChange中没有代码,所有的名称令牌也会成功触发。我不知道如何防止历史令牌的发射?

请帮帮我。

因此,当应用程序首先加载或任何其他名称令牌触发时,它应该首先调用onValueChange,并且由于该方法中没有代码,因此不应该加载任何内容。

如果你正在使用gwtp History ValueChangeHandler将不会阻止或启用导航到应用程序的特定部分。这些都是由PlaceManager处理的

经过一番谷歌搜索,我了解了位置管理器。我正在向历史记录添加一个更改处理程序。所有的更改处理程序已经添加的仍然在那里。特别是GWTP的那个PlaceManagerImpl构造函数。

如果你真的想阻止某些历史事件被GWTP,我建议,在您的自定义PlaceManager中,您覆盖onValueChange(…),拦截您想要阻止的令牌,以及调用父类的onValueChange来获取你希望GWTP处理的令牌正常。

相关内容

  • 没有找到相关文章

最新更新