我正在使用JSF 2.0开发Web应用程序,并且我开发了一个导航面板,用户必须使用该面板来浏览页面。小组讨好了。 但与此同时我不希望用户使用浏览器的“后退”,“前进”进行导航。 我的想法是,如果用户点击任何一个按钮,我将使会话无效并向他显示一个信息页面。 不知道如何在JSF 2.0中实现这一点,JavaScript是一个选项,但我想知道JSF是否有任何API支持???
答案 0 :(得分:6)
不要禁止用户使用他们熟悉的控件。首先,它提出了许多技术挑战,但更重要的是,它偏离了用户期望的非常非常常见的范例。
在某些情况下,manipulate the browser history可以接受,在非常精选的情况下,可以在离开屏幕之前提示用户(例如,当用户导航时可能会丢失工作的业务应用程序)。
如果用户可能会失去重要的工作,可能适合在离开页面之前使用JavaScript执行检查。然后,您可以提示用户,如果他们选择导航,您的服务器代码可以检查引用URL并根据参数确定用户采用了什么流。
关于具体技术;使用几乎任何服务器技术检查查询字符串变量都很容易(有或没有jQuery的JavaScript适用于任何客户端逻辑)。
再次,除非没有其他选择,否则请避免这种情况。
This discussion有关于禁用后退按钮的信息(为什么它不是一个好主意,以及可能的替代方案和选项)。