2013-01-10 30 views
0

我正在尝试每30分钟为我的应用程序处理会话超时。我的规范:在用户会话无效后,登录失败时必须重定向到登录页面。如何使用pimefaces实现会话超时处理?

用户在超时后被重定向到注销操作以使会话无效。

我是新总理的面孔和我都试过,但没有用:

<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

的可能重复的[会话超时而ViewExpiredException处理上JSF/PrimeFaces AJAX请求(http://stackoverflow.com/questions/11203195/session-timeout-and-viewexpiredexception-handling-on-jsf-primefaces-ajax-请求) – BalusC

回答

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

它有它的两个例子。