3

プログラムでglobalOnlyメッセージをカウントする「あまり正しくない」コードを書きます。

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

jsf 以外の developersres:javax.faces.component.MessageFactory.BindingFacesMessageは非表示クラスなので、instanceof は機能しません。私が見つけたように、メッセージはまたはBindingFacesMessageですFacesMessage

より良い解決策はありますか?(ただし、文字列リテラルを定数に入れます)。

4

1 に答える 1

5

グローバルのみのメッセージは、nullクライアント ID によって識別されます。

したがって、クライアント ID を取得する別のゲッターと組み合わせて、これを行う必要があります。

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