我们正在建立一个基于JEE6(JSF 2 / EJB 3 / Jboss 7)的Web应用程序。
我们需要在我们的应用程序中显示如下所示的进度条。我们可以使用哪个框架?有没有办法在Primefaces中做这件事?
答案 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展示的示例中,您也可以取消它,但取消真正的服务器端操作超出了范围,所以我删除了它: