提交表单时的一个好的设计解决方案,应该是“返回”然后“转发”浏览器按钮的行为。 类似的问题是当用户注销应用程序然后单击“转发”浏览器按钮时会发生什么?
我很高兴听到上述情况的一些情景。
感谢。
编辑 - 应该很好分享和我的观点: - )
我的个人意见是在注销后用户无法通过登录页面进入应用程序。 对于提交方案 - 在提交和返回浏览器按钮之后,用户应该能够返回到表单但是包含NO的数据。
答案 0 :(得分:1)
使用状态机来保持用户(会话)和请求状态是很常见的。如果您有这样的状态机,那么您就知道用户正在尝试错误的转换。根据用户状态和错误的转换,您可以将用户转发到页面。例如,如果用户尝试转到需要登录的页面但是他/她已经注销,则可以将她/她发送到登录页面,但是您可以提供用户名并仅询问密码。 / p>
要添加此功能,您可以通过在代码中对状态机进行硬编码来编写自己的代码,也可以使用其中一个可用的库。例如, Spring Web Flow为Spring框架提供了此功能。
答案 1 :(得分:1)
一种常见的模式是Post/Redirect/Get。在该模式下,帖子的结果是可收藏的(和后退/前进可导航)页面。后退按钮有一个常见的含义:“我不是故意去这里,带我回到原来的地方”就像在大多数Windows对话框中按ESC一样,而前进按钮意味着“我不是故意要回头按钮,我想要那个页面。“这种模式对每个人都不起作用;当每个页面(包括对表单提交的响应)表示您想要书签的某个概念实体时,它最有意义。
对于注销方案,大多数应用程序会检查您是否已登录,无论URL中指定了哪个页面,如果您尚未登录,则会重定向到登录表单。(您无需编码在每个页面上;检查通常是Valve或其他东西。)一个很好的功能是记住用户试图去的地方,并在成功登录后将它们带到那里。
你的问题更多的是关于设计而不是技术,所以GWT并没有真正改变图片,只是注意到GWT历史机制旨在模仿链接连接的静态页面的行为,post / redirect / get模式也有。