Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在gwt中触发历史标记后执行代码?_Gwt_History_Gwt Platform_Gwt History - Fatal编程技术网

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

如何防止在gwt中触发历史标记后执行代码?,gwt,history,gwt-platform,gwt-history,Gwt,History,Gwt Platform,Gwt History,我正在使用gwtp框架开发gwt2.3应用程序。在这个应用程序中,我有一个由客户端模块绑定的登录(索引)页面 bindConstant().annotatedWith(DefaultPlace.class).to(NameTokens.login); 现在,在成功登录后,将触发一个新的名称令牌名称用户页面 History.newItem(NameTokens.userconsole,true); 现在,我的历史处理程序如下所示: 公共类NameTokenHandler实现Value

我正在使用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");
}
现在,由于我已经重写了onValueChange方法&我将其保留为空

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

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

请帮帮我

提前谢谢

所以,当应用程序首先加载或触发任何其他名称标记时,它应该首先调用onValueChange,因为此方法中并没有代码,所以不应该加载任何内容


如果您使用的是gwtp历史值ChangeHandler将不会阻止或启用对应用程序某个特定部分的导航。这一切都是通过处理的。

通过谷歌搜索我了解了place manager。 我正在向历史记录中添加一个更改处理程序 已经添加的项目仍然存在,特别是GWTP中的项目 PlaceManagerImpl构造函数

如果您真的想阻止某些历史事件由 GWTP,我建议,在您的定制PlaceManager中 重写onValueChange(…),截取要阻止的令牌,然后 为您希望GWTP处理的令牌调用父级的onValueChange 通常

History.addValueChangeHandler(new NameTokenHandler());