2011-06-06 131 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