How do I able to fetch all the messages with SEVERITY is ERROR 开发者_高级运维only. I tried:
Iterator<FacesMessage> messages = facesContext.getMessages(clientId);
while (messages.hasNext()){
if(messages.next().getSeverity().toString()=="ERROR 2")System.out.println(messages);
}
Is this th right way? It doesnot intercept messages with ERROR severity.
Any help would be highly appreciated.
The comparison is wrong. You cannot (reliably) compare Strings on its content with ==
. When comparing objects with ==
, it would only return true
if they are of the same reference, not value as you seem to expect. Objects needs to be compared with Object#equals()
.
But you can compare constants with ==
. The FacesMessage.Severity
values are all static constants. You should rather just compare Severity
with Severity
. Also the sysout is wrong, it is printing the iterator instead of the sole message.
This should work:
Iterator<FacesMessage> messages = facesContext.getMessages(clientId);
while (messages.hasNext()) {
FacesMessage message = messages.next();
if (message.getSeverity() == FacesMessage.SEVERITY_ERROR) {
System.out.println("Error: " + message);
}
}
精彩评论