1

我们有一个基于 JEE6(JSF 2/EJB 3/Jboss 7)构建的 Web 应用程序。

我们需要在我们的应用程序中显示如下所示的进度条。我们可以使用哪个框架?有没有办法在 Primefaces 中做这件事?

在此处输入图像描述

4

1 回答 1

2

使用<p:progressBar/>PrimeFaces。他们在展示中提供了客户端、ajax 和静态版本的示例。

ajax 版本归结为在某个操作上启动进度条(示例中的命令按钮单击)。达到 100% 时它将自动停止(如果需要,将触发 ajax 事件,请参阅文档)

展示的相关 xhtml 和 bean 部分(几乎)逐字复制

xhtml

<p:progressBar widgetVar="pbAjax" ajax="true" value="#{progressBarView.progress}" labelTemplate="{value}%" styleClass="animated" global="false">
    <p:ajax event="complete" listener="#{progressBarView.onComplete}" update="growl" oncomplete="PF('startButton2').enable()"/>
</p:progressBar>

@Named
@ViewScoped
public class ProgressBarView implements Serializable {

    private Integer progress;

    public Integer getProgress() {
        if(progress == null) {
            progress = 0;
        }
        else {
            progress = progress + (int)(Math.random() * 35);

            if(progress > 100)
                progress = 100;
        }

        return progress;
    }

    public void setProgress(Integer progress) {
        this.progress = progress;
    }

    public void onComplete() {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Progress Completed"));
    }
}

在 PF 展示的示例中,您也可以取消它,但取消真正的服务器端操作超出了此处的范围,因此我将其删除:

于 2013-10-11T10:42:18.063 回答