我需要自动注销并将我发送到登录页面。我通过Primefaces的IddleMonitor制作了这个:
<h:form prependId="false">
<p:idleMonitor timeout="300000">
<p:ajax event="idle" listener="#{mainController.timeout()}" />
</p:idleMonitor>
</h:form>
其中maincontroller.timeout:
public void timeout() throws IOException
{
FacesContext.getCurrentInstance().getExternalContext()
.redirect("/cas/logout");
}
一切都好。但问题是在浏览器中打开了两个或更多选项卡。 iddlemonitor仅执行第一个选项卡。另一个选项卡将保持打开但会话已经关闭。我希望当第一个标签触发时。所有选项卡都会触发注销事件。这样做的任何方法?我还使用Java EE 6和JSF 2.2以及Primefaces 3.4