2012-02-20 48 views
0

我从一个支持bean的线程中调用一个线程,该线程支持许多db活动。 我想添加消息的上下文, ,但直到我到run()方法的结尾,上下文已经发布。 如何在不依赖于bean的情况下在线程的运行()方法 内向上下文添加消息?facescontext在线程完成工作之前发布

回答

0

是..你可以使用Ajax推做到这一点... 您可以使用黄金面或任何你想做的推...

你应该做一个bean的通知..每当你要通知客户端(只要你喜欢)以某种方式宣布,豆......想想吧:)

通过这种方式,你可以的30分钟就是他想要完成之后公布的客户端...

在最糟糕的情况下,您可以使用javascript中的“setInterval”函数定期检查servlet的消息...

这里是a tutorial for commet ..约

更多细节comet here

(是的..与阿贾克斯推的是一个相当长的路要走。 - 如果你想自己做)

欢呼。

+0

在我的网络中,我们不使用素数或冰,还有其他选项,你知道吗? – OshikawaL 2012-02-20 10:26:15

+0

你可以使用jQuery或你想要的东西(甚至是纯粹的javascript - 我建议jQuery给大家,因为是crossbrowser)..并且自己做一个ajax push ...我认为你可以用servlet来做到这一点..阅读:http ://en.wikipedia.org/wiki/Comet_(编程),但我建议你使用primefaces只为你需要的页面:) – Alex 2012-02-20 10:31:39

+0

也许你可以链接我一个例子,因为我不知道它很好? – OshikawaL 2012-02-20 10:35:45

0

faces上下文实例绑定到通过ThreadLocal为当前请求提供服务的线程。您可以尝试检索FacesContext实例并在启动它之前将其作为变量传递给线程。

+0

我试过了,它不工作。 – OshikawaL 2012-02-20 10:25:26

+0

我假设你正在调用应用程序阶段开始你的线程?如果是这样,你是否等待它们在返回结果字符串之前完成? – Nerrve 2012-02-20 10:34:05

+0

显然不是,给出问题:) – BalusC 2012-02-20 12:35:34

相关问题