我每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>
答案 0 :(得分:0)
终于得到了解决方案
我在这里使用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
它有两个例子。