2011-01-09 79 views
1

如何显示服务器在Facelet上的进度? 我需要写一个Servlet?或者是否可以通过ApplicationScoped Beans?JSF进度条 - 服务器端进程

我想以Ajax方式更新指标(进度条)。

回答

2

这取决于你想展示哪些东西的进展。基本上,您在Facelet上放置了一个进度条组件(例如http://www.primefaces.org/showcase/ui/progressBar.jsf),并将值绑定到能够提供进度信息的bean。

如何获得上述进展完全是另一个问题,并且超出了JSF的直接领域。例如,如果后台进程是Quartz作业,那么每当进度条发送轮询请求时,bean可能会记住它的作业ID并使用Quartz调度程序查找它。 Quartz作业内部运行的代码需要计算它在整个过程中的距离。

使用Servlet 3.0和CDI的事件总线,也可以利用反向AJAX /慧星,让进度条等待更新事件,而不是让进度条进行轮询。在这种情况下,您的背景工作将不得不定期发布更新事件。这样会更有效率,但仍然相对较新,并且始终不支持。

+0

我已经完成了这个过程,我可以得到它的进展价值,所以我认为第一个解决方案对我来说已经足够了,但第二个解决方案也非常好,我可能会在某一天尝试它。 – ehsun7b 2011-01-09 13:52:36