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 :

Problème affichage rich:messages


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut Problème affichage rich:messages
    Bonjour,

    J'ai un petit soucis dans l'affichage de mes messages, qui ne fonctionne pas dans les requêtes http (mais bien en ajax).

    J'utilise le code suivant en entête de mes pages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:form id="messages">
         <rich:messages errorClass="error" warnClass="warn" infoClass="info" globalOnly="true"/>
    </h:form>
    Je remplis mes messages en utilisant le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void notice(String message){
         getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,message,null));
    }
    public static void error(String message){
         getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,message,null));
    }
    Lorsque je lie cet appel à une action ajax, tout fonctionne à merveille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:commandButton value="delete" actionListener="#{userListFace.deleteAction}" reRender="UserList"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void deleteAction(ActionEvent event){
        try{
            userManager.delete(getUserListItem());
            FacesUtil.notice("Success");
        } catch(DataIntegrityViolationException e){
            FacesUtil.error(e.getMessage());
        }
    }
    Mais lorsque je l'utilise via une action HTML, je ne vois aucun message sur la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:commandButton value="save" action="#{userFace.saveAction}" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public String saveAction(){
        userManager.save(user);
        FacesUtil.notice("Modifications enregistrées");
        return "save";
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <navigation-rule>
         <from-view-id>/pages/user.jspx</from-view-id>
         <navigation-case>
            <from-outcome>save</from-outcome>
            <to-view-id>/pages/user.jspx</to-view-id>
            <redirect/>
         </navigation-case>
        ...
    </navigation-rule>
    Quelqu'un aurait-il une idée de ce qui cloche, et de comment je pourrais faire alors passer mon message d'une page à l'autre?

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu es sur que dans les deux cas l'action est bien exécutée?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    Oui, j'ai notamment les logs hibernate qui me montrent que l'update se fait correctement...

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    le message affiché est celui avec SEVERITY_ERROR et non SEVERITY_INFO,
    utilise le facet passedMarker..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    En Ajax avec le ActionListener, si je lui passe SEVERITY_ERROR, SEVERITY_WARN ou SEVERITY_INFO ça fonctionne...

    Par contre, je ne suis pas certain de comprendre le fonctionnement du facet passedMarker. Si je regarde sur le site de demo :
    http://livedemo.exadel.com/richfaces...ge&cid=4448033

    On ne voit jamais ce facet marker, même quand tous les champs sont bien remplis...

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    quand tu remplace rich:message par h:message ça fonctionne?

Discussions similaires

  1. Problème affichage rich:popupPanel dans un ui:include
    Par amadoulamine1 dans le forum JSF
    Réponses: 0
    Dernier message: 04/08/2011, 13h34
  2. Réponses: 3
    Dernier message: 03/09/2010, 16h36
  3. Réponses: 0
    Dernier message: 03/12/2009, 22h02
  4. problème affichage rich:dataTable
    Par altair_606 dans le forum JSF
    Réponses: 3
    Dernier message: 03/01/2009, 02h40
  5. Problème avec l'affichage de message d'erreur
    Par gaet_045 dans le forum JSF
    Réponses: 2
    Dernier message: 08/05/2007, 11h56

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