0

刷新时模型弹出窗口正在关闭(按 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>
4

1 回答 1

3

当会话过期时,您必须向响应添加一些信息,例如 cookie “sessionExpired=true”,并将其与响应一起发送给您的客户端。 然后,当您在对象中 找到该 cookie 时,您必须每次
都渲染。我了解您希望用户按下确认按钮,这是通过弹出窗口的唯一方法,是吗?因此,当用户按下按钮时,只需从请求中替换 cookie(例如,通过将其到期日期更改为某个过去的值),并且下一个用户请求 cookie 不会出现,您的应用程序也不会显示该弹出窗口。 通过从请求中替换,我的意思是这样的:confirmDialogHttpServletRequest




Cookie

Map<String, Object> requestCookieMap =
    FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap();
Cookie sessionExpiredCookie = (Cookie) requestCookieMap.get("sessionExpired");
sessionExpiredCookie.setMaxAge(0);
于 2013-01-17T11:20:16.713 回答