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