0

我知道函数 FacesContext.addMessage()。但是,如果我当前处于不同的面孔上下文中会发生什么,例如在不同的窗口中。

有没有办法获得对存储在当前会话中的其他 FacesContext 对象的引用?

基本上,我想从弹出窗口向父级发送消息,但是,我没有对父级的 FacesContext 对象的引用。

4

1 回答 1

1

它不完全那样工作。FacesContext 不是通常在已经渲染的窗口内主动坐在那里等待的东西。

特定“窗口”的 FacesContext 仅可用于处理最终发送包含 HTML 响应的请求的线程。当收到这个 HTML 响应时,浏览器只是显示它。在那一刻,没有任何服务器端 FacesContext 仍然与该 HTML 相关联的概念。

使用反向 AJAX(彗星)虽然可以将内容从服务器推送到特定客户端。与这种服务器端推送相关联的支持 bean 可以暂停,您可以让它等待一些服务器端事件。CDI 总线在这里是最方便的,但基本上,通过 HTTP 会话共享的对象上的老式通知也可以工作。

与弹出窗口或任何其他窗口相关联的支持 bean 可能会触发此事件。

于 2011-03-09T22:46:04.633 回答