刷新页面后如何显示模态弹出窗口?

时间:2013-01-17 11:05:19

标签: jsf user-interface jsf-2 primefaces popup

模型弹出窗口在刷新(按F5之后)页面时关闭 请告诉我刷新后如何显示它。 我正在使用素面

<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}"/>

</p:confirmDialog>

1 个答案:

答案 0 :(得分:2)

当会话过期时,您必须向响应添加一些信息,例如cookie“sessionExpired = true”,并通过响应将其发送给您的客户端。
然后,当你在confirmDialog对象中发现cookie时,你必须每次渲染HttpServletRequest

我理解您希望用户按下确认按钮,这是通过弹出窗口的唯一方法,是吗?
那么当用户按下按钮时,只需从请求中替换cookie(例如将其过期日期更改为某个过去的值),并且下一个用户请求cookie将不会出现,您的应用程序将不会显示该弹出窗口。

从请求中替换Cookie我的意思是这样的:

Map<String, Object> requestCookieMap =
    FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap();
Cookie sessionExpiredCookie = (Cookie) requestCookieMap.get("sessionExpired");
sessionExpiredCookie.setMaxAge(0);

我希望这会有所帮助。