2015-07-02 2 views
0

Есть ли способ использовать PrimeFaces RequestContext для вызова диалога, определенного в JSF, из управляемого компонента, который имеет форму, но синхронно, что означает, что управляемый компонент ожидает выполнения потока до тех пор, пока пользователь представляет форму?Синхронный вызов диалога из управляемого компонента

В настоящее время я успешно вызываю диалог из моего управляемого компонента, но вызов асинхронен, что означает, что диалог открывается, но поток управляемого компонента продолжается, не дожидаясь, пока пользователь предоставит необходимые дополнительные данные через диалог.

Итак, в моем 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> 

В моем управляемом компоненте, я вызываю диалог условно, если некоторые критерии соблюдены:

... 
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 
} 
... 

СВЯЗАННЫЕ :

Prompting overlay for extra data by managed bean

Calling a JavaScript function from managed bean

ответ

2

Нет, это невозможно. Запрос RequestContext Primfaces может выполнять только свою работу, тогда жизненный цикл JSF продолжается и отправляет информацию javascript (PF('myDialog').show();, например, что делать) обратно клиенту (браузеру).

Решение будет каким-то образом изменить вашу логику.

  1. пользователь предоставляет некоторые данные проверки
  2. , если данные были достаточно
  3. если нет, то снова открыть ту же самую форму (или другой)
  4. сделать шаг 2 + 3 до достаточно данных поставляется
  5. продолжают с вашей логикой
Смежные вопросы