Не закрывать диалоговое окно p:, когда ошибка проверки возникает после submit

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

<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. Это работает, но замедляет работу пользовательского интерфейса, потому что для открытия или закрытия диалогового окна требуется обращение к серверу.

64
задан BalusC 18 January 2016 в 10:02
поделиться