Оставьте диалоговое окно p: открытым, если после подтверждения произошла ошибка проверки

Минимальный пример диалога:

<p:dialog header="Test Dialog"  
          widgetVar="testDialog"> 
  <h:form> 
    <p:inputText value="#{mbean.someValue}"/> 

    <p:commandButton value="Save" 
                     onsuccess="testDialog.hide()" 
                     actionListener="#{mbean.saveMethod}"/> 
  </h:form>       
</p:dialog> 

То, что я хочу сделать, это сделать так, чтобы mbean.saveMethod каким-то образом препятствовал закрытию диалога, если была какая-то проблема, и выводил сообщение только через рычание. Это тот случай, когда валидатор не поможет, потому что нет способа определить, допустимо ли someValue, пока сохранение не будет отправлено на внутренний сервер. В настоящее время я делаю это с помощью атрибута visible и указываю на логическое поле в mbean. Это работает, но замедляет пользовательский интерфейс, потому что всплывающее или закрывающее диалоговое окно требует попадания на сервер.

Ответы на вопрос(6)

Ваш ответ на вопрос