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 :

Gestion des erreurs, et remonté vers le client


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Gestion des erreurs, et remonté vers le client
    bonjour,

    j'aimerais savoir comment vous avez l'habitude de gérer vos erreurs dans vos appli JSF.

    Par exemple la mienne (jsf+faces+richaces) ne se recharge jamais, tout est gérer en ajax.

    Donc par exemple lorsque je fais appel à une methode d'un de mes beans et qu'une erreur se produit, comment puis-je remonter et afficher cette erreur du coté client, dans un modalPanel par exemple.

    J'avoue que je n'ai pas beaucoup cherché encore, mais vos avis m'interessent

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Il suffit de stocker tes exceptions dans le FacesContext (méthode addMessage(...)).
    Après, il te faut les afficher grâce à un <rich:messages/> (ou <h:messages/>).
    Vu que tu utilises de l'Ajax, soit tu peux te servir de l'attribut ajaxRendered du <rich:messages/> (ou inclure un <h:messages/> dans un <a4j:outputPanel qui est ajaxRendered).

    Est-ce suffisant comme explication ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    oui ca pourrait le faire mais ca ne fonctionne pas, j'ai du louper un truc

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <a4j:form>
     
     
     
     
    	<a4j:commandButton image="/static/img/button/modifier.gif"	action="#{bean.testError}"  reRender="message_id"/>
     
     
     
    	<rich:message id="message_id" styleClass="formError">
    		<f:facet name="errorMarker">
    			<h:graphicImage url="/static/img/error.gif" width="13px"/>
    		</f:facet>
    	</rich:message>
     
     
     
    </a4j:form>
    et dans mon bean

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    	public void testError() {
     
     
    		addMessage("message_id","message","detail",FacesMessage.SEVERITY_INFO);
    	}
     
    public void addMessage(String id,String summary,String detail,FacesMessage.Severity severity){
    			FacesContext facesContext = FacesContext.getCurrentInstance();
    			FacesMessage facesMessage = new FacesMessage();
    			facesMessage.setSeverity(severity);
    			facesMessage.setSummary(summary);
    			facesMessage.setDetail(detail);
    			facesContext.addMessage(id, facesMessage);
    	}


    au debugger Java je passe bien dans la methode, j'ajoute le message mais à l'écran il n'y a rien qui s'affiche...

    merci

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Citation Envoyé par romaintaz Voir le message
    Vu que tu utilises de l'Ajax, soit tu peux te servir de l'attribut ajaxRendered du <rich:messages/> (ou inclure un <h:messages/> dans un <a4j:outputPanel qui est ajaxRendered).
    T'as fait comme indiqué par Romain ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    ouep j'ai testé avec ajaxRendered ca ne fonctionne pas...par contre je viens de tester avec rich:messageS et ça fonctionne....

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Il te manque l'attribut for pour >rich:message>, qui doit pointer vers l'id du composant concerné.

  7. #7
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par yoskater Voir le message
    ouep j'ai testé avec ajaxRendered ca ne fonctionne pas...par contre je viens de tester avec rich:messageS et ça fonctionne....
    Dans mon post, je parlais bien de rich:messages, pas rich:message

    N'oublie pas du coup !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    hum, c'est pas faux...

    rich:message ne fonctionne pas de la même facon?

  9. #9
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Non, sinon il aurait été inutile d'avoir deux composants différents
    rich:message va fonctionner pour un composant (un input par exemple) pour lequel il affichera tous les messages d'erreurs qui lui sont liés.
    rich:messages peut (selon sa configuration) affiché tous les messages d'erreur de la page.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Car en fait j'ai un formulaire (avec un input + rich:message) sur la meme page et losque un message est affiché dans le formulaire , il apparait aussi dans mon rich:messageS ...


    edit:
    Mais!!! il y a une solution
    Ne pas mettre d'identifiant au message et donc créer un message "global"
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    facesContext.addMessage(null, facesMessage);

    puis utiliser de l'attribut globalOnly="true" de rich:messageS

    et voila autoresolution!

    merci bcp a++

  11. #11
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Voilà, tout à fait, tu as compris le système !

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

Discussions similaires

  1. Bonne gestion des erreurs d'un client/server
    Par gege22mars dans le forum Général Java
    Réponses: 3
    Dernier message: 03/04/2009, 10h55
  2. Réponses: 4
    Dernier message: 13/09/2006, 16h53
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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