如果有人能给我一些关于进度条和 ajax 后端处理的提示,我将不胜感激。
为了澄清我需要以下是详细信息:
我有一个命令按钮可以在后端进行一些处理。当支持 bean 完成处理后端指令时,我想显示一个达到 100% 的进度条。我查看了很多线程,但没有运气。他们中的大多数都没有展示如何做到这一点的具体示例。下面是我的代码片段:
</h:panelGrid>
<p:commandButton id="btn" value="DoSomeAction"
styleClass="ui-priority-primary" update="panel"
onclick="PF('pbAjax').start();PF('startButton1').disable();"
widgetVar="startButton1"
actionListener="#{actionBean.DoSomeAction}" />
<p:progressBar widgetVar="pbAjax" ajax="true"
value="#{progressBean.progress}" labelTemplate="{value}%"
styleClass="animated">
<p:ajax event="complete" listener="#{progressBean.onComplete}"
update="growl" oncomplete="startButton2.enable()" />
</p:progressBar>
</p:panel>
这是 Progress Brean 的代码:
@ManagedBean(name="progressBean")
public class ProgressBean 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(FacesMessage.SEVERITY_INFO, "Progress Completed", "Progress Completed"));
}
public void cancel() {
progress = null;
}
}
这段代码的结果只是一个空的进度条,当我点击我的按钮时没有任何反应。提前致谢。