模型弹出窗口在刷新(按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>
答案 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);
我希望这会有所帮助。