PrimeFaces を使用RequestContext
して、マネージド Bean から JSF で定義されたダイアログを呼び出す方法はありますか?これにはフォームがありますが、マネージド Bean はユーザーがフォームを送信するまでスレッドの実行を待機します。
現在、マネージド Bean からダイアログを正常に呼び出していますが、呼び出しは非同期です。つまり、ダイアログは開かれますが、マネージド Bean スレッドは、ユーザーがダイアログを介して必要な追加データを提供するのを待たずに続行します。
したがって、私の JSF では、ダイアログを次のように定義しています。
<p:dialog header="My Dialog" widgetVar="myDialog" modal="false" height="100">
<h:form>
<h:outputLabel for="inputData" value="Input Data:"/>
<p:inputText id="inputData" title="Input Data"
maxlength="16" required="true" ... >
</p:inputText>
<h:commandButton value="Submit"/>
</h:form>
</p:dialog>
マネージド Bean では、いくつかの基準が満たされた場合に条件付きでダイアログを呼び出します。
...
if(noteReqd) {
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.execute("PF('myDialog').show();");
//here I want the managed bean to stop until the user supplies the extra data needed
//but it just proceeds downstream without the data the user enters
}
...
関連している: