3

我编写了一个“不太正确”的代码来以编程方式计算 globalOnly 消息。

for (final FacesMessage message : facesContext.getMessageList()) {
    if (!message.getClass().getCanonicalName().equals("javax.faces.component.MessageFactory.BindingFacesMessage")) {
            globalOnlyMessagesCount++;
    }
}

对于非 jsf 开发者:javax.faces.component.MessageFactory.BindingFacesMessage是一个不可见的类,所以 instanceof 不起作用。我发现消息是一个BindingFacesMessageFacesMessage

有没有更好的解决方案?(除了我将字符串文字设置为常量)。

4

1 回答 1

5

仅全局消息由null客户端 ID 标识。

因此,这应该与另一个获取客户端 ID 的 getter结合使用:

int globalOnlyMessagesCount = facesContext.getMessageList(null).size();
于 2013-04-23T12:03:15.497 回答