Сравнение неверно. Вы не можете (надежно) сравнить строки по их содержанию с ==
. При сравнении объектов с ==
он вернет true
, только если они имеют ту же ссылку , а не значение , как вы, вероятно, ожидаете. Объекты нужно сравнивать с Object#equals()
.
Но вы можете сравнить константы с ==
. Все значения FacesMessage.Severity
являются статическими константами. Лучше просто сравнить Severity
с Severity
. Также sysout не так, он печатает итератор вместо единственного сообщения.
Это должно работать:
Iterator<FacesMessage> messages = facesContext.getMessages(clientId);
while (messages.hasNext()) {
FacesMessage message = messages.next();
if (message.getSeverity() == FacesMessage.SEVERITY_ERROR) {
System.out.println("Error: " + message);
}
}