jsf消息严重性

use*_*194 3 jsf messages

如何使用SEVERITY获取所有消息仅为ERROR.我试过了:

Iterator<FacesMessage> messages = facesContext.getMessages(clientId);
while (messages.hasNext()){
    if(messages.next().getSeverity().toString()=="ERROR 2")System.out.println(messages);
}
Run Code Online (Sandbox Code Playgroud)

这是对的吗?它不会拦截ERROR严重性的消息.

任何帮助将受到高度赞赏.

Bal*_*usC 8

比较是错误的.你不能(可靠地)比较字符串的内容==.在比较对象时==,只有true当它们具有相同的引用时才会返回,而不是您所期望的.需要将对象与之进行比较Object#equals().

但是,你可以比较常数==.该FacesMessage.Severity值都是静态常量.你还是只是比较SeveritySeverity.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);
    }
}
Run Code Online (Sandbox Code Playgroud)