有没有办法使用 PrimeFacesRequestContext
从托管 bean 调用 JSF 中定义的对话框,托管 bean 有一个表单,但同步,这意味着托管 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
}
...
有关的: