登录GWT历史记录问题

时间:2011-06-29 11:49:45

标签: java gwt history gwt-history

我有以下问题。这是用户登录应用程序并注册历史记录时的情况。 工作流程是: 1.检查用户是否已登录 - 意味着用户对象是否在会话中 如果没有,则加载登录表单并添加新令牌(History.newItem(“login”)) 如果是,那么用户可以自由地在应用程序中输入主表单并添加一个标记(History.newItem(“main”))。 用户成功输入pass和user后,添加一个新标记(History.newItem(main))并输入应用程序主窗体。

这就是问题,在显示主窗体并且用户决定在浏览器中单击“返回”之后,将从堆栈中获取“登录”标记并加载登录表单。但是假设用户决定点击“转发”浏览器按钮然后“主”令牌并显示主窗体。我不喜欢这种情况并希望这样做:在“后退”按钮后出现一个对话框并询问“离开应用程序?”使用“是”和“否”按钮但我无法确定何时我有定期登录或“后退/前进”登录以执行某些操作。

任何建议或方法......可能我的设计错了..

任何区分后退或前进动作的方法?

1 个答案:

答案 0 :(得分:4)

如果你想避免这一切,那就不要在历史记录中加入“登录”。

在这种情况下,您可能希望将登录面板实现为模式对话框。因此,当用户(或应用程序)请求登录时,将显示带有登录输入字段的模态对话框。完成登录后,只需关闭对话框并重新加载当前页面(以反映受登录影响的更改)。

您可以使用'History.fireCurrentHistoryState()'强制重新加载当前页面。这会调用您的历史记录处理程序,但它不会影响历史记录(没有令牌添加到历史记录堆栈中)。