【问题标题】:JSF Progressbar - Server-side processJSF Progressbar - 服务器端进程
【发布时间】:2011-01-09 12:14:34
【问题描述】:

如何在 Facelet 上显示服务器的进度? 我需要编写 Servlet 吗?或者可以通过ApplicationScoped Beans 实现吗?

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

【问题讨论】:

    标签: ajax jsf jsf-2 progress-bar


    【解决方案1】:

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

    如何获得上述进展完全是另一个问题,不属于JSF的直接范围。例如,如果后台进度是 Quartz 作业,您的 bean 可能会记住它的作业 ID,并在每次进度条发送轮询请求时使用 Quartz 调度程序查找它。然后在 Quartz 作业中运行的代码需要计算它在整个过程中的距离。

    使用 Servlet 3.0 和 CDI 的事件总线,还可以利用反向 AJAX/comet 并让进度条等待更新事件,而不是让进度条进行轮询。在这种情况下,您的后台工作将不得不定期发布更新事件。这会更有效,但仍然相对较新,并不总是开箱即用。

    【讨论】:

    • 我已经完成了这个过程,我可以得到它的进度值,所以我认为第一个解决方案对我来说已经足够了,但第二个解决方案也很好,我可能有一天会尝试。
    猜你喜欢
    • 2014-06-03
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多