2010-08-09 13 views
0

Cette image devrait expliquer clairement le problème. J'utilise p: messages de primefaces, mais je suppose que cela devrait s'appliquer à h: messages ainsi.multiple <p:messages> sur une seule page JSF

alt text http://img717.imageshack.us/img717/4775/pmessages.png

Je veux associer un composant <p:messages> avec la forme dans laquelle il est placé. Dans ce cas, le message est reçu par les deux composants.

L'erreur est générée par le serveur, et je suis en utilisant cette fonction:

public static void showErrorMessage(String errorString) { 
    FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, errorString, ""); 
    FacesContext.getCurrentInstance().addMessage(null, facesMsg); 
} 

Comment puis-je résoudre ce problème? Merci!

Editer: Clarification: Les deux composants sont sur la même page.

Répondre

3

Est-ce une requête non-ajax? p: les messages de PrimeFaces 2.1 ont l'option redisplay (vrai par défaut), qui pourrait aider. Lorsque l'option redisplay est false, les messages déjà affichés sont ignorés. Vous pouvez aussi utiliser p: growl comme alternative.

+0

J'utilise Primefaces 2.0.2. C'est l'exigence du client donc je ne peux pas mettre à jour :( – Akshay

+0

J'ai fini par utiliser p: growl Il semble qu'il n'y ait pas de solution directe pour cela – Akshay

1

Un exemple dans JSF + PrimeFaces 5.2

xhtml

<p:messages for ="Message1" showDetail="true" autoUpdate="true" closable="true" /> 
<p:messages for ="Message2" showDetail="true" autoUpdate="true" closable="true" /> 

Bean

FacesContext.getCurrentInstance().addMessage("Message1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 1")); 

FacesContext.getCurrentInstance().addMessage("Message2", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 2")); 

This source give this answer and helped me

+0

Je ne vois pas la relation entre cette réponse et la question de 5 ans. – Kukeltje