我开始使用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");
问题:confirmDialog保持为空(outputText id =“PBlaunch”保持为空),直到所有API调用完成,此时所有消息都出现(但为时已晚......)
有关原因的任何线索?