Какой обработчик событий JSF следует использовать для зависимых от содержимого изменений в представлении? - PullRequest
1 голос
/ 20 июня 2011

У меня есть ах: форма с полями ввода, которые помечены как обязательные.Я хотел бы зарегистрировать обработчик событий, который начинает действовать после проверки того, были ли соблюдены «обязательные» критерии (если да: без изменений, если нет: закрасьте фон компонента красным).

Мне еще предстоит выяснить, какой обработчик событий сделан для этого варианта использования.Я пробовал javax.faces.event.PreValidateEvent, который должен делать эту работу, если это проблема проверки.Насколько я знаю жизненный цикл JSF, проверка никогда не вызывается, когда обязательное поле не соответствует его критериям (таким образом, повторно отображая представление «немедленно»).

Спасибо за выбор правильного выбора!

1 Ответ

1 голос
/ 20 июня 2011

Я хотел бы зарегистрировать обработчик событий, который будет действовать при проверке того, были ли выполнены «обязательные» критерии (если да: без изменений, если нет: закрасить фонкомпонент красный).

Можно ли просто проверить, действителен ли компонент, независимо от используемого преобразования / проверки?

<h:inputText value="#{bean.input}" required="true" 
    styleClass="#{component.valid ? 'none' : 'error'}" />

(ссылка EL #{component} внутри входного компонента относится к UIInput экземпляру самого компонента, этот класс, в свою очередь, имеет метод isValid(), поэтому он работает так, чтоспособ)

И определить CSS следующим образом

input.error {
    background: #fee;
}

Если нет, или если вы хотите более общее решение (или если вы используете JSF 1.x, который нене поддерживает #{component}), то вы также можете использовать PhaseListener.Вы можете найти пример в этой статье .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...