Вы обновляете диалог каждый раз, не закрывая его сначала.Я не уверен, что это ошибка или функция, но из-за атрибута visible
оверлей повторно инициализируется при каждом обновлении диалога.Возможно, вы захотите сообщить об этом ребятам из PrimeFaces вместе с более компактным тестовым набором.
Самое простое решение - просто закрыть диалог об успешном использовании AJAX.Он будет отображаться быстрее, чем конечный пользователь может моргнуть.
<p:commandButton ... onsuccess="dialog.hide()" update="dialog" />
Вам, вероятно, потребуется только настроить атрибуты visible
и rendered
, чтобы убедиться, что диалоговое окно снова открывается при проверкене удалось (например, когда пользователь еще не вошел в систему).
Альтернативой является обновление формы диалога вместо самого диалога.
<p:commandButton ... update="@form" />
Или полное удаление этого атрибута.По умолчанию он уже @form
.
<p:commandButton ... />
Закрытие диалогового окна при успешном входе в систему может быть выполнено с помощью RequestContext#execute()
.
RequestContext.getCurrentInstance().execute("dialog.hide()");
.