JEE6 (JSF 2/ EJB 3 / Jboss 7) 上に構築された Web アプリケーションがあります。
アプリケーションで以下のようなプログレス バーを表示する必要があります。どのフレームワークを使用できますか? Primefaces でこれを行う方法はありますか?
JEE6 (JSF 2/ EJB 3 / Jboss 7) 上に構築された Web アプリケーションがあります。
アプリケーションで以下のようなプログレス バーを表示する必要があります。どのフレームワークを使用できますか? Primefaces でこれを行う方法はありますか?
<p:progressBar/>
PrimeFace の使用。彼らのショーケースには、クライアント側、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>
豆
@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 ショーケースの例では、キャンセルすることもできますが、実際のサーバー側のアクションをキャンセルすることはここでは範囲外であるため、削除しました。