Montrant la JSF Messages d'Erreur

Je suis en utilisant JSF Myfaces Impl 1.2 sans tomahawk et d'autres libs :

Je suis en utilisant différents styles de + images à montrer JSF messages d'Erreur trouverez ci-dessous un échantillon.

<h:panelGroup rendered="${adminBean.showErrorIcon==2}">
<table width="375" align="center" class="InfoMsg" border="1"
    cellspacing="0" cellpadding="0">
    <tr>
    <td>
    <table width="375" align="center" class="InfoMsg" border="0">
        <tr>
            <td width="50"><img src="static/images/info_icon.gif"
                width="40" height="40" border="0" /></td>
            <td width="325" align="left"><h:messages layout="table"
                errorClass="InfoMsg" /></td>
        </tr>
    </table>
    </td>
</tr>
</table>

Basée sur la variable int de la Sauvegarde de la Fève , je suis l'affichage d'une image diff et le correspondant FacesMessage(s) dans l'écran seulement 2 cas d'erreur ou d'une information.

Je suis en utilisant le code ci-dessous pour définir la variable de l'appui de Haricots

//Checking if there are messages!
    log.debug("Checking if there are messages to be shown ]");
    if(getShowErrorIcon()==99){//Set only if the value is still the default :
        log.debug("getShowErrorIcon was DEFAULT - Changing it ]");
        Iterator<FacesMessage> messages = FacesContext.getCurrentInstance().getMessages();
        if(messages != null && getShowErrorIcon()==99){//Set Error/Info for messages that are not added here :
            while(messages.hasNext()){
                log.debug("There are ***messages***");
                FacesMessage aMessage =(FacesMessage) messages.next();
                if(aMessage.getSeverity().compareTo(FacesMessage.SEVERITY_ERROR)==0){
                    setShowErrorIcon(1);
                    break;//just once is enough
                }
                if(aMessage.getSeverity().compareTo(FacesMessage.SEVERITY_INFO)==0){
                    setShowErrorIcon(2);
                    break;
                }
            }
        }
    }//if it is not default, then something has been set already, why again?

Maintenant le problème que j'ai , Il y a des FacesMessage(s) sont ajoutés par le MyFacesImpl - comme l'required=true et le validateur personnalisé des messages qui sont ajoutés au cours de PROCESS_VALIDATION Phase, ce ne sont pas affichées dans l'écran depuis ma variable de type entier de la Sauvegarde de Haricot n'est pas , et puisque la INVOKE_APPLICATION Phase n'a pas été appelé (et cela signifie que le code ci-dessus n'a pas été appelé!!!)

Comment puis-je résoudre ce problème? Ou quel est le meilleur chemin /Où est le meilleur endroit pour placer le code de vérification ci-dessus ?

Remercie de votre aide.Merci!

OriginalL'auteur gekrish | 2010-07-06