我编写了一个“不太正确”的代码,以编程方式计算globalOnly消息。
for (final FacesMessage message : facesContext.getMessageList()) {
if (!message.getClass().getCanonicalName().equals("javax.faces.component.MessageFactory.BindingFacesMessage")) {
globalOnlyMessagesCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
对于非jsf开发者:javax.faces.component.MessageFactory.BindingFacesMessage是一个不可见的类,因此instanceof不起作用。我发现消息是BindingFacesMessage或FacesMessage
有更好的解决方案吗?(除了我将字符串文字设置为常量)。
仅全局消息由null客户端ID标识。
因此,这应该与另一个使用客户机ID的getter结合使用:
int globalOnlyMessagesCount = facesContext.getMessageList(null).size();
Run Code Online (Sandbox Code Playgroud)