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

发布于 2024-12-03 22:02:52 字数 871 浏览 0 评论 0原文

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

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

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

     History.newItem(NameTokens.userconsole,true);

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

public class NameTokenHandler Implements ValueChangeHandler {

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

}

我在入口点类中添加了如下所示的历史记录:

History.addValueChangeHandler(new NameTokenHandler());

现在,因为我已经重写了 onValueChange 方法 &我把它留空了。

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

但在应用中却运行良好。即使 onValueChange 中没有代码,所有名称令牌也会成功触发。我不知道如何防止历史令牌的触发?

请帮帮我。

提前致谢。

I am working on gwt2.3 application with gwtp framework.In this application I am have one login (index) page which is bind by the client module.

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

Now after successfull login a new name token name user page is fired.

     History.newItem(NameTokens.userconsole,true);

Now I have my history handler like below:

public class NameTokenHandler implements ValueChangeHandler {

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

}

And I added to History like below in entry point class:

History.addValueChangeHandler(new NameTokenHandler());

Now as I have overridden the onValueChange method & I have left it blank.

So when application loads first or any other name token fires it should invoke onValueChange first
and as there no code in this method nothing should be load.

But in application it is working fine. All the name tokens are firing successfully even after there is no code in onValueChange. I am not getting how to prevent the firing of history token?

Please help me out.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬花如无物 2024-12-10 22:02:52

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

如果您使用 gwtp History ValueChangeHandler 将不会阻止或启用导航到应用程序的特定部分。这一切都是通过 PlaceManager< 处理的/a>.

So when application loads first or any other name token fires it should invoke onValueChange first and as there no code in this method nothing should be load.

If you are using gwtp History ValueChangeHandler will not prevent or enable navigation to a particualr part of your application. That is all handled with PlaceManager.

慕巷 2024-12-10 22:02:52

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

如果您确实想阻止某些历史事件被处理
GWTP,我建议,在您的自定义 PlaceManager 中,您
重写 onValueChange(...),拦截您想要阻止的令牌,以及
为您希望 GWTP 处理的令牌调用父级的 onValueChange
通常情况下。

After some googling I came to know about place manager.
I am adding_ a change handler to History. All the change handlers that
have been added already are still there. In particular, the one in GWTP's
PlaceManagerImpl constructor.

If you really want to prevent some history events from being handled by
GWTP, I would suggest that, in your custom PlaceManager, you
override onValueChange(...), intercept the tokens you want to block, and
call the parent's onValueChange for the tokens you want GWTP to handle
normally.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文