0

Primefaces の poll コンポーネントを使い始めました。目標: プログレス バーとして機能する confirmDialog ウィンドウを更新します。xhtml:

<h:form id="pbForm" prependId="false">
    <p:confirmDialog id ="progressBar" message= ""
                     header="Retrieving information..."
                     widgetVar="pbar"
                     severity="info">
        <h:outputText id="PBlaunch" value="#{pBLaunchSearch.getLaius()}"/>
        <p:poll interval="1" update="PBlaunch" />
    </p:confirmDialog>
</h:form>

プログレスバーの私のBean:

@ManagedBean
@RequestScoped

public class PBLaunchSearch {

    private static StringBuilder sb = new StringBuilder();

    public static void setLaius(String toAdd) {
        sb.append(toAdd);
        sb.append("<br>");
    }

    public static String getLaius() {
        return sb.toString();
    }

    public static void resetLaius() {
        sb = new StringBuilder();
    }
}

バックグラウンドで時間がかかる操作は、いくつかの API 呼び出しです。API 呼び出しが終了するたびに、次のコマンドを実行します。

PBLaunchSearch.setLaius("another API call returned");

問題: すべての API 呼び出しが行われるまで、confirmDialog は空のまま (outputText id="PBlaunch" は空のまま) になり、その時点ですべてのメッセージが一度に表示されます (しかし遅すぎます...)。

理由の手がかりはありますか?

4

0 に答える 0