【问题标题】:How to fire an event when Cookies has just expired in GWT?如何在 GWT 中的 Cookie 刚刚过期时触发事件?
【发布时间】:2014-05-31 05:17:54
【问题描述】:

好的,这是要求。

我想构建一个如下所示的系统:

- 标题:有一个 PleaseLoginPanel 和 SuccessLoginPanel - 内容页面仅包含内容并通过 EventBuss 与标题通信 - HeaderPresenter 是父 Presenter & ContentPresenter 嵌套在 Header Presenter 中。

假设当用户打开此网址“mydomain#content”时,他们将看到一个页面,其顶部包含 PleaseLoginPanel 的标题和包含一些 textareabutton 的内容部分(标题下方)供用户使用输入数据并提交给数据库。

为了能够访问内容页面中的小部件,用户需要登录,登录后,PleaseLoginPanel 将不可见,SuccessfulLoginPanel 将可见。用户现在可以在内容部分使用小部件。

假设Session & Cookies 将持续 1 小时,会话 cookie 过期后用户无法提交内容数据。

假设用户花了很多精力准备数据并即将提交,但会话已过期,因此他无法提交。当时,标题中的SuccessfulLoginPanel 还留在那里。所以用户可能会丢失他之前准备的所有内容。您可能会说,他可以打开一个新页面并登录并从旧页面复制数据(会话已过期且没有PleaseLoginPanel的页面),但这仍然花费了他很多精力来复制。

所以我想要这样,当库克刚刚过期时,它会向标题触发一个事件并要求标题显示PleaseLoginPanel

我们如何在 GWT 或 GWTP 中做到这一点?

【问题讨论】:

    标签: gwt gwtp


    【解决方案1】:

    找到了一个解决办法,就是使用定时器

        Timer showLoginPanelTimer = new Timer() {
              public void run() {
    
                  getView().getLoginPanel().setVisible(true);
                  getView().getSuccessfulLoginPanel().setVisible(false);
                  getView().getEmailBox().setText("");
                  getView().getPasswordBox().setText("");
                  Utility.removeUserInfoCookies();
              }
         };
    
    
        showLoginPanelTimer.schedule(Utility.COOKIE_TIMEOUT);
    

    【讨论】:

      猜你喜欢
      • 2016-05-10
      • 2015-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多