IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[Primefaces] Problème d'affichage d'un <p:messages>


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut [Primefaces] Problème d'affichage d'un <p:messages>
    Bonjour à tous,

    Dans une de mes pages, j'ai 2 formulaires. Le premier contient une balise <p:messages> et datatable tandis que le second contient un inputText et un bouton.

    Le <p:messages> a pour objectif d'afficher les différents messages sur ma page.

    Actuellement, j'arrive à afficher sans problème un message suite à une édition "incell editing" ou suite à une erreur de validation "incell editing". J'arrive également sans problème à afficher une erreur de validation de mon inputText.

    Mais impossible d'afficher correctement un message suite à la validation de mon inputText (affichage de la page suite à une requête POST).

    Voici ce que je fais dans ma méthode init :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @PostConstruct
    	public void init() {
    	    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Blabla"));	
    	}
    Sur certaines pages cette méthode marche sans soucis, tandis que sur d'autres, le message s'affiche à la fin de ma page dans un élément qui semble avoir été créé par JSF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ul id="javax_faces_developmentstage_messages" title="Project Stage[Developement]: Unhandled Messages">
        <li style="Color: blue">   Blabla </li>
    </ul>
    Savez-vous d'où vient le problème ?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Pour le premier problème : es-tu certain de passer dans ta méthode init(...) ?
    Ton <p:messages> a-t-il des attributs particuliers ?

    Pour le 2ème problème, lorsque JSF est en mode DEVELOPEMENT il affiche de lui-même les messages non traités ou les erreurs de navigation par exemple.

    Ca se règle avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    Les valeurs possibles sont :
    Production
    Development
    UnitTest
    SystemTest
    Extension
    Si ton message est pris en compte par un "afficheur de message" (Style h:messages ou p:messages) il ne doit pas s'afficher dans le mode DEVELOPPEMENT.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut
    Bonjour,

    Le problème vient probablement du fait que mon controller tente d'afficher le message avant que la vue ne soit initialisée (@Post contruct).

    En conséquence JSF/Primefaces ne trouve pas le <p:messages> et JSF l'affiche donc dans une liste.

    J'ai réussi à contourner le problème. J'affiche maintenant mon message dans la méthode qui valide mon formulaire et pour "persister" le message malgré la redirection, j'utilise le morceau de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Primefaces] Problème d'affichage d'image
    Par syrine Jerbi dans le forum JSF
    Réponses: 5
    Dernier message: 04/03/2014, 23h32
  2. [PrimeFaces] Problème d'affichage
    Par DarkVador85 dans le forum JSF
    Réponses: 10
    Dernier message: 15/03/2013, 00h12
  3. Réponses: 4
    Dernier message: 08/11/2012, 18h34
  4. Réponses: 3
    Dernier message: 22/10/2012, 13h58
  5. [PrimeFaces] Problème d'affichage d'une map
    Par ahmedpa dans le forum JSF
    Réponses: 0
    Dernier message: 22/09/2012, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo