Ответ 1
Вы отправляете запрос ajax с помощью PrimeFaces <p:commandButton>
. Запросы Ajax по умолчанию не имеют обратной связи (если только не используется PrimeFaces autoUpdate="true"
). Вы должны явно указывать части представления, которые вы хотите обновить при ответе ajax.
Один из способов - указать атрибут update
на <p:commandButton>
, чтобы указать идентификатор клиента компонента <h:messages>
.
<h:messages id="messages" ... />
<h:form>
<p:commandButton ... update=":messages" />
</h:form>
Другой способ - заменить его на PrimeFaces <p:messages>
, который имеет атрибут autoUpdate
для автоматического обновления ответа ajax.
<p:messages ... autoUpdate="true" />
<h:form>
<p:commandButton ... />
</h:form>
Совершенно другая альтернатива - отключить ajax, добавив к кнопке атрибут ajax="false"
, таким образом будет выполняться синхронная обратная передача, которая эффективно приводит к полному обновлению страницы, точно так же, как ведет себя стандартный JSF <h:commandButton>
при использовании без <f:ajax>
.
<h:messages ... />
<h:form>
<p:commandButton ... ajax="false" />
</h:form>