是否可以在JSF中将消息从一个面上下文发送到另一个面上下文?

时间:2011-03-09 18:45:48

标签: jsf facescontext

我知道FacesContext.addMessage()函数。但是,如果我目前处于不同的面部环境中会发生什么,例如在不同的窗口中。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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