Две формы и h: messages, решают, какие сообщения отображать - PullRequest
1 голос
/ 30 декабря 2011

У меня есть два сообщения h: формы и одно сообщение h: в одном из них. Как я могу отображать ошибки проверки только из этой формы? Я хочу игнорировать все сообщения из другой формы.

1 Ответ

2 голосов
/ 30 декабря 2011

Поскольку вы уже используете JSF2, рассмотрите возможность замены синхронных запросов асинхронными запросами, введя <f:ajax execute="@form" render="@form"> в нужных местах.

Например,

<h:form>
    <h:messages />
    <h:inputText required="true" />
    ...
    <h:commandButton value="submit">
        <f:ajax execute="@form" render="@form">
    </h:commandButton>
</h:form>

<h:form>
    <h:messages />
    <h:inputText required="true" />
    ...
    <h:commandButton value="submit">
        <f:ajax execute="@form" render="@form">
    </h:commandButton>
</h:form>

Таким образом, только содержимоетекущего <h:form> будет перерисовано после отправки.Дополнительным преимуществом является более быстрая обратная связь и улучшенное взаимодействие с пользователем благодаря использованию ajax.

Если по какой-либо причине это не вариант, лучше всего использовать атрибут rendered, чтобы условно отображать компонент <h:messages> в зависимости отна вызываемой кнопке (чья пара имя = значение (имя - идентификатор клиента) будет присутствовать в карте параметров запроса).Например,

<h:form>
    <h:messages rendered="#{not empty param[button1.clientId]}" />
    <h:inputText required="true" />
    ...
    <h:commandButton binding="#{button1}" value="submit" />
</h:form>

<h:form>
    <h:messages rendered="#{not empty param[button2.clientId]}" />
    <h:inputText required="true" />
    ...
    <h:commandButton binding="#{button2}" value="submit" />
</h:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...