以下のコードは、進行状況バーで使用できます。プログレスバーは100で停止し、getProgress()は再び呼び出されません。整数進行がビーン
package com.test;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class ProgressBean {
private Integer progress;
public Integer getProgress() {
System.out.println("getProgress() Old - " + progress);
if (progress == null) {
progress = 0;
} else {
progress = progress + (int) (Math.random() * 35);
if (progress > 100) // Only when progress = 100 does the onComplete() method gets called.
progress = 100;
}
System.out.println("getProgress() New- " + progress);
return progress;
}
public void setProgress(Integer progress) {
System.out.println("setProgress()" + progress);
this.progress = progress;
}
public void onComplete() {
System.out.println("onComplete()");
//FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Progress Completed"));
progress = null;
}
}
出力
getProgress() Old - null
getProgress() New- 0
getProgress() Old - 0
getProgress() New- 24
getProgress() Old - 24
getProgress() New- 50
getProgress() Old - 50
getProgress() New- 82
getProgress() Old - 82
getProgress() New- 100
onComplete()
JSF 2.2.4、Primefaces 5.3、Tomcatの8
管理100
<h:form>
<p:growl id="growl" />
<p:commandButton value="Start" type="button"
onclick="PF('pbAjax').start();" />
<p:progressBar widgetVar="pbAjax" ajax="true"
value="#{progressBean.progress}" labelTemplate="{value}%"
styleClass="animated" global="false">
<p:ajax event="complete" listener="#{progressBean.onComplete}"
update="growl" />
</p:progressBar>
</h:form>
に等しくなるとonCompleteの()が呼び出され
**何が**行われますか?アラートを表示するだけの場合はどうなりますか?あなたはどこで 'PF( 'progress')を呼び出そうとしましたか?cancel();'? – Kukeltje
私は 'p:dialog'を呼び出し、ダイアログをOnHideします。 100%に達すると、getPorcentagemの呼び出しを続けます。 – lss