【问题标题】:How to implement Session Timeout Handling using pimefaces?如何使用 pimefaces 实现会话超时处理?
【发布时间】:2012-12-24 11:12:43
【问题描述】:
我正在尝试每 30 分钟为我的应用程序进行一次会话超时处理。我的规范:用户会话无效后登录失败时,我必须重定向到登录页面。
用户在超时后被重定向到注销操作以使会话无效。
我是素人面孔的新手,我已经尝试过,但没有用:
<session-config>
<session-timeout> 1 </session-timeout>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>faces/login.xhtml</location>
</error-page>
</session-config>
【问题讨论】:
标签:
java
jsf
session
primefaces
session-timeout
【解决方案1】:
终于解决了
我在这里使用p:idleMonitor。它会在内部照顾好
<p:idleMonitor timeout="#{login.sessionTimeoutInterval}">
<p:ajax event="idle" listener="#{login.sessionIdleListener}" />
</p:idleMonitor>
<p:confirmDialog closable="false" id="sessionExpiredDlg"
message="Your session expired."
header="#{msgs['confirmDialog.initiatingDestroyProcess.label']}"
severity="alert" widgetVar="sessionExpiredConfirmation" style="z-index: 25000">
<p:commandButton id="confirmRouteDel" value="Ok"
oncomplete="sessionExpiredConfirmation.hide()"
actionListener="#{login.logoutAction}"/>
Java 方法:
public void sessionIdleListener() {
RequestContext context = RequestContext.getCurrentInstance();
context.execute("sessionExpiredConfirmation.show()");
}
看看这个。
http://www.primefaces.org/showcase/ui/misc/idleMonitor.xhtml
里面有两个例子。