刷新页面后如何显示模态弹出窗口?
Posted
技术标签:
【中文标题】刷新页面后如何显示模态弹出窗口?【英文标题】:How to display model popup after refreshing page? 【发布时间】:2012-12-31 21:49:46 【问题描述】:模型弹出窗口正在关闭,同时刷新(按 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>
【问题讨论】:
使用 jsf 操作或 F5 刷新? Refresh 创建一个新的 HTTP 请求。所以会话不再过期。为什么还要显示这个对话框?<p:confirmDialog/>
有一个visible
属性,我相信您可以在javascript 中跟踪页面刷新,您需要做的就是发挥创意。
我希望用户按下确认按钮,这是通过会话过期弹出窗口的唯一方法。 BalusC
【参考方案1】:
当会话过期时,您必须在响应中添加一些信息,例如 cookie“sessionExpired=true”,并将其与响应一起发送给您的客户端。
然后,每次在 HttpServletRequest
对象中找到该 cookie 时,您都必须渲染您的 confirmDialog
。
我了解到您希望用户按下确认按钮,这是通过您的弹出窗口的唯一方法,是吗? 因此,当用户按下按钮时,只需从请求中替换 cookie(例如,通过将其过期日期更改为某个过去的值),并且下一个用户请求 cookie 不会出现,您的应用也不会显示该弹出窗口。
通过从请求中替换 Cookie
我的意思是这样的:
Map<String, Object> requestCookieMap =
FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap();
Cookie sessionExpiredCookie = (Cookie) requestCookieMap.get("sessionExpired");
sessionExpiredCookie.setMaxAge(0);
【讨论】:
以上是关于刷新页面后如何显示模态弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章