jsf message severity

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);
    }
}
链接地址: http://www.djcxy.com/p/71648.html

上一篇: JSF(Primefaces)通过ID的几个元素的ajax更新

下一篇: jsf消息严重性