0

我正在使用 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.addValueChangeHandler(new NameTokenHandler());

现在,由于我已经覆盖了 onValueChange 方法并且我将其留空。

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

但在应用中它工作正常。即使 onValueChange 中没有代码,所有名称标记都已成功触发。我不知道如何防止触发历史令牌?

请帮帮我。

提前致谢。

4

2 回答 2

1

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

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

于 2011-09-09T19:28:05.030 回答
0

经过一番谷歌搜索后,我开始了解地方经理。我正在向历史记录添加一个更改处理程序。所有已添加的更改处理程序仍然存在。特别是 GWTP 的 PlaceManagerImpl 构造函数中的那个。

如果您真的想阻止 GWTP 处理某些历史事件,我建议您在自定义 PlaceManager 中覆盖 onValueChange(...),拦截您要阻止的令牌,并为令牌调用父级的 onValueChange您希望 GWTP 正常处理。

于 2011-09-12T05:08:14.180 回答