2011-06-06 175 views
0

在JSF 2.0上下文中,session.getMaxInactiveInterval()返回會話過期剩餘時間,一種靜態方式。 是否有任何解決方法允許實時顯示剩餘時間? 就像系統線程一樣。會話到期實時剩餘時間

在我的Web應用程序中,我使用了一個primeFaces組件(一種模式對話框),在用戶不活動(tmeout)顯示一條消息「Are you there?」的特定時間後顯示其自身。 其實,我要的是添加類似以下到對話框:

<h:outputText id="remainder" value="#{sessionEar.maxInactiveInterval}" > 
<f:ajax execute="@form" render="remainder" event="????"/> 
</h:outputText> 

這樣的想法是重新呈現<h:outputText />每5秒各60秒(1分鐘:假設顯示的秒數實時並不那麼容易)!以便它在會話過期前更新剩餘時間。

我該怎麼做?否則,你有更好的解決方案嗎?

回答

0

我完成了使用直接適合的PrimeFaces Poll組件。

<p:poll interval="1" update="remainder" /> 
3

我會建議使用基於JavaScript的計時器,通過閱讀#remainder的值開始。這種方式也不需要進行任何往返請求新的時間。

var interval=setInterval('updateSessionTimer()',1000); // every second 
var remainder = document.getElemetById('remainder'); 
function updateSessionTimer() 
{ 
    secondsLeft = parseInt(remainder.innerText); 
    remainder.innerHTML = secondsLeft-1; 
} 
+0

它並沒有真正爲我這樣工作,但我用你的函數有一個實時時鐘,使用 Hanynowsky 2011-06-13 18:17:40