我知道FacesContext.addMessage()函数。但是,如果我目前处于不同的面部环境中会发生什么,例如在不同的窗口中。
有没有办法获得对当前会话中存储的其他FacesContext对象的引用?
基本上,我想从弹出窗口向父节点发送消息,但是,我没有对父节点的FacesContext对象的引用。
答案 0 :(得分:1)
它并不完全像那样。 FacesContext不是通常主动坐在那里等待已经渲染的窗口的东西。
特定“窗口”的FacesContext仅适用于处理最终发送包含HTML的响应的请求的线程。收到此HTML响应后,浏览器只显示它。在那一刻,没有任何服务器端FacesContext仍与该HTML相关联的概念。
使用反向AJAX(彗星)虽然可以将内容从服务器推送到特定客户端。可以暂停与此类服务器端推送关联的辅助bean,您可以让它等待某些服务器端事件。 CDI总线在这里最方便,但基本上通过HTTP会话共享的对象上的旧式通知也可以工作。
与弹出窗口或任何其他窗口相关联的支持bean可能会触发此事件。