jsf消息严重性

我如何能够使用SEVERITY获取所有消息只是错误。 我试过了:

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

这是正确的方式吗? 它不会拦截具有ERROR严重性的邮件。

任何帮助将不胜感激。


比较是错误的。 您不能(可靠地)将其内容的字符串与==进行比较。 当使用==比较对象时,如果它们具有相同的引用 ,那么它只会返回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);
    }
}
链接地址: http://www.djcxy.com/p/71647.html

上一篇: jsf message severity

下一篇: jQuery event binding