如何在JSF应用程序中绘制进度条

时间:2013-10-11 10:40:02

标签: jsf-2 primefaces progress-bar

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

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

enter image description here

1 个答案:

答案 0 :(得分:2)

使用PrimeFaces的<p:progressBar/>。他们在showcase上有客户端,ajax和静态版本的示例。

ajax版本归结为在某个动作上启动进度条(在示例中单击commandButton)。达到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>

bean

@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展示的示例中,您也可以取消它,但取消真正的服务器端操作超出了范围,所以我删除了它: