【发布时间】:2012-03-10 16:11:19
【问题描述】:
我正在从一个支持 bean 调用一个线程,该 bean 产生许多 db 活动。 我想在上下文中添加消息, 但是直到我到达 run() 方法的末尾,上下文已经被释放。 如何在线程的 run() 方法中将消息添加到上下文中, 不依赖bean?
【问题讨论】:
标签: java jsf facescontext
我正在从一个支持 bean 调用一个线程,该 bean 产生许多 db 活动。 我想在上下文中添加消息, 但是直到我到达 run() 方法的末尾,上下文已经被释放。 如何在线程的 run() 方法中将消息添加到上下文中, 不依赖bean?
【问题讨论】:
标签: java jsf facescontext
faces 上下文实例通过 ThreadLocal 绑定到为当前请求提供服务的线程。您可以尝试检索 FacesContext 实例并将其作为变量传递给线程,然后再启动它。
【讨论】:
是的..您可以使用 ajax push 来做到这一点... 你可以使用素面或任何你想做的推...
您应该为通知制作一个 bean.. 并且每当您想在客户端上通知时(如您所愿)以某种方式宣布该 bean...考虑一下 :)
通过这种方式,您可以在 30 分钟后向客户宣布他想要的事情已经完成......
在最坏的情况下,您可以在 javascript 中使用“setInterval”函数...定期检查 servlet 是否有消息...
更多关于comet here的详情
(是的.. ajax 推送是一个很长的路要走.. - 如果你想自己做的话)
干杯。
【讨论】: