【问题标题】:How to prevent code to execute after firing of history token in gwt?如何防止在gwt中触发历史令牌后执行代码?
【发布时间】:2011-09-09 13:47:58
【问题描述】:

我正在使用 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 中没有代码,所有名称标记都成功触发。我没有得到如何防止触发历史令牌?

请帮帮我。

提前致谢。

【问题讨论】:

    标签: gwt history gwt-platform gwt-history


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-29
        • 2017-04-14
        • 2014-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多