我想知道,session.remove("userBean")
在用户关闭JSF 1.2上的窗口(点击浏览器的'X')后,我将如何在JSF中执行此操作.
我想在用户点击浏览器的'X'之后弹出一个确认弹出,但不太确定我如何访问或将Ok
按钮绑定到我定义的方法,在那里我有清除范围bean的逻辑.或者有更好的方法吗?
任何帮助将受到高度赞赏.
谢谢.
我想知道,在用户关闭JSF 1.2上的窗口(点击浏览器的'X')之后,我将如何在JSF中执行session.remove("userBean").
你不必担心它.如果会话超时,那么肯定会删除bean.如有必要,可以控制会话超时时间<session-config>
的web.xml
.如果你真的想挂钩会话超时/销毁,那么你可以实现HttpSessionListener
和拦截sessionDestroyed()
,或者UserBean
实现HttpSessionBindingListener
和拦截valueUnbound()
.
如果你真的坚持要听浏览器关闭按钮,毕竟这是非常多的工作,那么你所能做的就是使用Javascript的beforeunload
事件.没有别的办法.您应该记住,这是一个不标准的事件,因此并非所有Web浏览器都支持这一事件.例如,Opera不支持此事件.简化这项工作是一项非常重要的工作,因为当您进行简单的香草导航或表单提交时,此事件也会被触发,您需要在每个"普通"链接/按钮上禁止此事件.您还需要触发Ajaxical请求以通知服务器有关关闭的信息,因为您无法更改页面位置或提交隐藏的表单,因为浏览器将被关闭.