2

我想知道一些关于 gwtp 网守的事情:

  1. 如果canReveal()方法返回false,会发生什么?在我的测试中,我已被重定向到默认位置,我可以更改它吗?

  2. 具有嵌套的演示者,例如:

    MenuPresenter- 仅对管理员可见。

    HomePresenter- 对管理员和普通用户可见。

    当登录的用户是普通用户时,我只想“不显示”菜单演示者,这可能吗?

谢谢

4

2 回答 2

3

1 - “如果 canReveal() 方法返回 false,会发生什么?在我的测试中,我已被重定向到默认位置,我可以更改它吗?”

来自GWTP 维基

“演示者处理错误是您的自定义 PlaceManagerrevealErrorPlace方法所揭示的错误。如果您不覆盖该方法,那么它就是您的revealDefaultPlace方法所揭示的错误。”

这是的默认实现revealErrorPlace

public void revealErrorPlace(String invalidHistoryToken) {
    revealDefaultPlace();
}

因此,您可以在自定义 PlaceManager 中覆盖它,并为其添加更多逻辑以重定向到您想要的任何位置。


2 - “当登录用户是普通用户时,我只想“不显示”菜单演示者,这可能吗?”

您可以像这样在演示者中隐藏视图:

@Override
protected void onReset() {
    super.onReset();

    if (!user.getAdmin) {
        getView().asWidget().setVisible(false);
   }
}

(对于 PopupPresenters,您必须覆盖 onReveal() 方法)

于 2011-09-30T09:43:31.930 回答
1

嗯,我认为我们应该更新文档。

您还可以覆盖revealUnauthorizedPlace,这将确保您有一个用于错误处理和安全的不同过程。

默认情况下,revealUnauthorizedPlace 调用revealErrorPlace。

于 2011-10-07T12:17:59.240 回答