提交按钮+ GWT历史记录

时间:2011-06-28 09:15:33

标签: java gwt history gwt-history

提交表单时的一个好的设计解决方案,应该是“返回”然后“转发”浏览器按钮的行为。 类似的问题是当用户注销应用程序然后单击“转发”浏览器按钮时会发生什么?

我很高兴听到上述情况的一些情景。

感谢。

编辑 - 应该很好分享和我的观点: - )

我的个人意见是在注销后用户无法通过登录页面进入应用程序。 对于提交方案 - 在提交和返回浏览器按钮之后,用户应该能够返回到表单但是包含NO的数据。

2 个答案:

答案 0 :(得分:1)

使用状态机来保持用户(会话)和请求状态是很常见的。如果您有这样的状态机,那么您就知道用户正在尝试错误的转换。根据用户状态和错误的转换,您可以将用户转发到页面。例如,如果用户尝试转到需要登录的页面但是他/她已经注销,则可以将她/她发送到登录页面,但是您可以提供用户名并仅询问密码。 / p>

要添加此功能,您可以通过在代码中对状态机进行硬编码来编写自己的代码,也可以使用其中一个可用的库。例如, Spring Web Flow为Spring框架提供了此功能。

答案 1 :(得分:1)

一种常见的模式是Post/Redirect/Get。在该模式下,帖子的结果是可收藏的(和后退/前进可导航)页面。后退按钮有一个常见的含义:“我不是故意去这里,带我回到原来的地方”就像在大多数Windows对话框中按ESC一样,而前进按钮意味着“我不是故意要回头按钮,我想要那个页面。“这种模式对每个人都不起作用;当每个页面(包括对表单提交的响应)表示您想要书签的某​​个概念实体时,它最有意义。

对于注销方案,大多数应用程序会检查您是否已登录,无论URL中指定了哪个页面,如果您尚未登录,则会重定向到登录表单。(您无需编码在每个页面上;检查通常是Valve或其他东西。)一个很好的功能是记住用户试图去的地方,并在成功登录后将它们带到那里。

你的问题更多的是关于设计而不是技术,所以GWT并没有真正改变图片,只是注意到GWT历史机制旨在模仿链接连接的静态页面的行为,post / redirect / get模式也有。