Стилизация входного компонента после сбоя проверки
Как я могу стилизовать компонент после неудачной проверки?
У меня есть следующее текстовое поле:
Я пытаюсь изменить цвет после:
Щелкнул.
Я нашел этосайт и попытался реализовать путь, который был показан там.
Это мой класс:
public class RequiredFieldValidationListener implements SystemEventListener {
public boolean isListenerForSource(Object source) {
return true;
}
public void processEvent(SystemEvent event) throws AbortProcessingException {
if (event.getSource() instanceof UIInput) {
UIInput source = (UIInput) event.getSource();
if (!source.isValid()) {
String originalStyleClass = (String) source.getAttributes().get("styleClass");
source.getAttributes().put("data-originaStyleClass", originalStyleClass);
source.getAttributes().put("styleClass", originalStyleClass + " ui-input-invalid");
} else {
String originalStyleClass = (String) source.getAttributes().get("data-originaStyleClass");
source.getAttributes().put("styleClass", originalStyleClass);
}
}
}
}
Я регистрирую это вfaces-config.xml
как:
---
com.edfx.adb.web.event.RequiredFieldValidationListener
javax.faces.event.PostValidateEvent
javax.faces.component.html.HtmlInputText
Также я попытался использовать
@ListenersFor({ @ListenerFor(sourceClass = HtmlInputText.class, systemEventClass = PostValidateEvent.class) })
public class RequiredFieldValidationListener implements SystemEventListener {
}
Я ожидал, что когда поле ввода будет недопустимым, в моем случае пустым, класс css ui-input-invalid будет добавлен к атрибуту class компонента. Но это не работает. Я на самом деле методprocessEvent
не выполняется вообще.
Что я делаю не так и как мне этого добиться?