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 :

RichFaces : Blocage de page incompréhensible.


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut RichFaces : Blocage de page incompréhensible.
    Bonjour,

    Je développe une application avec RichFaces et je subis un blocage incompréhensible sur une page.
    J'ai créé un formulaire simple avec des champs de texte, une liste et un bouton valider.

    Mon problème c'est que lorsque cette liste est affichée remplie (par une méthode appelée depuis le constructeur d'un controller, il m'est impossible de déclencher une autre action sur ma page. Impossible donc de valider le formulaire en cliquant sur le bouton. Rien ne se passe.

    Alors que si je ne remplis pas la liste, mon bouton fait bien ce que je lui demande.

    Je ne vois ce qui peut déclencher un tel comportement et toutes vos lumières seront les bienvenues.

    Voici le code de ma page :

    Code : 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
    <a4j:form id="manuelForm">
     
    	<h:outputText value='Login : '/><h:inputText id='Login' value="#{ajoutGestionnaireController.gestionnaire.uId}"></h:inputText>
     
    	<h:outputText value='Nom : ' /><h:inputText id='Nom' value="#{ajoutGestionnaireController.gestionnaire.uId}"></h:inputText>
     
    	<h:outputText value='Prénom : '/><h:inputText id='Prenom' value="#{ajoutGestionnaireController.gestionnaire.uId}"></h:inputText>
     
    	<h:outputText value='Couple Ub/Cr : '/> <h:selectOneMenu id='manUbCr' value='#{ajoutGestionnaireController.ubCr.idUbCr}'>
    										<f:selectItems value="#{ajoutGestionnaireController.ubCentreDeCout}"/></h:selectOneMenu> 
     
    	<h:outputText value="Admin ?"></h:outputText><h:selectBooleanCheckbox value="#{ajoutGestionnaireController.gestionnaire.admin}"></h:selectBooleanCheckbox>
     
    	<a4j:commandButton id="validateManu" value="Valider" action="#{ajoutGestionnaireController.test}"></a4j:commandButton>
     
    	</a4j:form>
    Et de la méthode du controller qui remplit la liste :

    Code : 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
    20
    21
    22
    23
    public void remplirUbCc()
    	{
    		logger.log(Level.INFO, "AjoutGestionnaireController : Appel de remplirUbCc");
    		UbCrHarp uH;
    		ubCentreDeCout  = new TreeSet<String>();
     
    		try
    		{
    			listeUbCrHarp = ubCrHarpService.getAllUbCrHarp();
    			logger.log(Level.INFO, "AjoutGestionnaireController.remplirUbCr.listeUbCrHarp.size = " + String.valueOf(listeUbCrHarp.size()));
    			Iterator<UbCrHarp> i = listeUbCrHarp.iterator();
     
    			while(i.hasNext())
    	 		{
    				uH = i.next();
    				ubCentreDeCout.add(uH.getUb() + " / " + uH.getIdCentreCout());
    			}
    		}
    		catch(Exception e)
    		{
    			logger.log(Level.ERROR, "AjoutGestionnaireController.remplirUbCr : " + e);
    		}
    	}

  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
    Est ce que tu as une erreur javascript sur page?

    Utilise un simple h:form, et ajoute un h:messages à ta page pour voir si il n'y as pas une erreur JSF.

    Tu peux aussi loguer les phases JSF pour voir dans quelle phase la requete s'arrête. voir la ..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Bonjour,

    J'ai fait les tests demandés avec h:messages, il n'y a rien qui s'affiche et la page ne signale pas d'erreurs javascript.

    Par contre je ne vois pas de quoi tu parles quand tu parles de "phases JSF". J'ai cherché dans la faq sans trouver, si tu pouvais m'aiguiller un peu plus...

    Merci beaucoup.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 55
    Par défaut
    Citation Envoyé par Pepps Voir le message
    Bonjour,

    Par contre je ne vois pas de quoi tu parles quand tu parles de "phases JSF". J'ai cherché dans la faq sans trouver, si tu pouvais m'aiguiller un peu plus...

    Merci beaucoup.
    voilà le lien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Merci pour le lien.

    J'ai créé la classe, j'ai fait sa déclaration dans le faces-config.xml, il y a t-il quelque chose à faire de plus ?
    J'ai créé un attribut logPhaseListener dans le controller de ma page, mais rien ne s'affiche dans la console.

  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
    Citation Envoyé par Pepps Voir le message
    Merci pour le lien.

    J'ai créé la classe, j'ai fait sa déclaration dans le faces-config.xml, il y a t-il quelque chose à faire de plus ?
    J'ai créé un attribut logPhaseListener dans le controller de ma page, mais rien ne s'affiche dans la console.
    Est ce que tu travailles avec log4j, sinon tu peux utiliser un simple System.out.println.

    quels sont les libraires de ton projet?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Je travaille bien avec log4j mais je ne vois pas comment faire pour afficher les logs du Phase Listener

    Mon projet utilise : Spring, Richfaces, JSF, log4j et Ibatis pour la base de données.

  8. #8
    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
    Citation Envoyé par Pepps Voir le message
    Je travaille bien avec log4j mais je ne vois pas comment faire pour afficher les logs du Phase Listener

    Mon projet utilise : Spring, Richfaces, JSF, log4j et Ibatis pour la base de données.
    ajoute la classe dans le log4j.properties

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Merci beaucoup ! Je ne savais pas qu'on pouvait faire ça. Donc j'ai ajouté le phase listener dans log4j et quand dans ma page je valide mon formulaire il m'affiche ça :

    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - beforePhase RESTORE_VIEW 1
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - afterPhase RESTORE_VIEW 1
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - beforePhase APPLY_REQUEST_VALUES 2
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - afterPhase APPLY_REQUEST_VALUES 2
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - beforePhase PROCESS_VALIDATIONS 3
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - afterPhase PROCESS_VALIDATIONS 3
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - beforePhase RENDER_RESPONSE 6
    DEBUG fr.univ.paris7.dsi.deRec.controller.LogPhaseListener - afterPhase RENDER_RESPONSE 6
    Si je comprends bien, il passe bien par la validation de la page et réaffiche la réponse, est-ce bien ça ?
    Si c'est cela, comment se fait-il que la méthode qui devrait être appelée par le bouton valider ne le soit pas ?

  10. #10
    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
    ça ressemble à une erreur de conversion, as tu bien ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:messages showDetail="true" />
    quels sont les jars déployés dans ton projet?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    J'ai bien ajouté ça (dans ma page jsf, après le bouton Valider) mais rien ne s'affiche.

    Pour les jars qui concernent les frameworks cités plus hauts :
    jsf-api.jar
    jsf-impl.jar
    jstl-1.2.jar
    log4j-1.2.12.jar
    richfaces-api-3.3.2.SR1.jar
    richfaces-impl-3.3.2.SR1.jar
    richfaces-ui-3.3.2.SR1.jar
    spring-2.0-rc3.jar

  12. #12
    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
    quelle version de JSF? serveur d'applciation??

    comment elle est remplie la liste? comment l'action la méthode remplireXX est appelée.?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    C'est du JSF 2.0 sur un serveur d'application Tomcat 6.0

    La liste est remplie par la méthode suivante :

    Code : 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
    20
    21
    public void remplirUbCc()
    {
    	UbCrHarp uH;
    	ubCentreDeCout  = new TreeSet<String>();
     
    	try
    	{
    		listeUbCrHarp = ubCrHarpService.getAllUbCrHarp();
    		Iterator<UbCrHarp> i = listeUbCrHarp.iterator();
     
    		while(i.hasNext())
    	 	{
    			uH = i.next();
    			ubCentreDeCout.add(uH.getUb() + " / " + uH.getIdCentreCout());
    		}
    	}
    	catch(Exception e)
    	{
    		logger.log(Level.ERROR, "AjoutGestionnaireController.remplirUbCr : " + e);
    	}
    }
    Cette méthode est appelée dans le constructeur de mon controller.

    Lorsque je clique sur Valider j'appelle une méthode de test (qui fait juste un affichage dans la console) de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:commandButton id="validateManu" value="Valider" action="#{ajoutGestionnaireController.test}"></a4j:commandButton>

  14. #14
    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
    ta version Richfaces n'est pas compatible avec JSF 2.0, prend la dernière 3.3.3.Final.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    En fait, j'ai testé avec la dernière version de RichFaces et ça n'a rien changé.

    Par contre je me suis rendue compte qu'il manquait les phases 4 et 5 et j'ai pu résoudre mon problème grâce aux explications données ici.

    En fait, erreur très bête, je ne récupérais pas la sélection de ma liste dans le bon type mai ça ne déclenche aucun message d'erreur...

    Merci pour les différentes astuces que vous m'aurez permis de découvrir.

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

Discussions similaires

  1. Mise en page incompréhensible
    Par solorac dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 21/05/2010, 11h08
  2. Réponses: 1
    Dernier message: 27/07/2009, 10h20
  3. [JBoss Portal] Richfaces + JBoss Portal => Page blanche
    Par supermanu dans le forum Portails
    Réponses: 1
    Dernier message: 12/11/2008, 18h50
  4. Confirmation et blocage de page
    Par leeloo1902 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/06/2007, 11h14

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