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 :

Erreur de navigation


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut Erreur de navigation
    Bonjour,

    Voilà mon problème : j'essaye d'associer, en vain, à un bouton le chargement d'une autre page. J'ai donc mon bouton se trouvant sur une page1 et je veux que lors du clic sur le bouton, la page2 se charge.

    Voilà le code de mon bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton value="Connect" update="panel" action="#{userBean.connect(e)}" />
    Voici la fonction associée, "connect" se trouvant dans le bean "UserBean" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String connect(ActionEvent e)
    {
        return connection;
    }
    La variable "connection" est initialisée avec la valeur "true".

    J'utilise ensuite un fichier XML pour spécifier le chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <navigation-rule>
     
             <from-view-id>/userConnection.xhtml</from-view-id>
             <navigation-case>
     
                 <from-action>#{UserBean.connect(e)}</from-action>
                 <from-outcome>true</from-outcome>
                 <to-view-id>/index.xhtml</to-view-id>
     
            </navigation-case>
     
    </navigation-rule>
    Mon bouton se trouve sur la page userConnection.xhtml et je veux qu'il redirige vers la page index.xhtml.
    L'exécution du code me met une erreur :
    Impossible de trouver un cas de navigation correspondant depuis l’ID de vue «/userConnection.xhtml» pour l’action «#{userBean.connect(e)}» avec le résultat «true».

    En espérant trouver une aide sur ce forum,
    Merci d'avance et bonne soirée.

  2. #2
    Membre expérimenté Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Par défaut
    La méthode à laquelle tu fais appel dans le paramètre action doit retourner un String et ne doit prendre rien comme paramètre

    <p:commandButton value="Connect" update="panel" action="#{userBean.connect}" />
    Donc la méthode est la suivante (elle doit retourner un String):

    public String connect()
    {
    return ("connection");
    }
    et pour faces-config.xml:
    <navigation-rule>

    <from-view-id>/userConnection.xhtml</from-view-id>
    <navigation-case>

    <from-action>#{userBean.connect}</from-action>
    <from-outcome>connection</from-outcome>
    <to-view-id>/index.xhtml</to-view-id>

    </navigation-case>

    </navigation-rule>
    Voila, j'espère que ça marche

  3. #3
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Bonjour,

    Merci de ta réponse.
    J'ai fais des tests avec le code que tu m'as transmis mais sans améliorations. J'ai toujours le même avertissement.

    Petit détail qui n'est, je pense, pas relié à mon problème mais qui me chiffonne.
    Je déclare au début de mon bean le ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     @ManagedBean (name="UserBean")
    Mes appels de fonctions sont donc du type :
    Et pourtant une seule appellation est valable dans le XML.
    Si je rajoute une majuscule, le clic sur le bouton est sans effet et je n'obtiens ni avertissement, ni message de bienvenue (paramétré dans la fonction appelée).
    Bien sûr, il n'y a pas de "problème", il suffit d'enlever la majuscule. Mais je m'interroge alors si quelqu'un a des réponses !..

    Bonne journée.

  4. #4
    Membre expérimenté Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Par défaut
    Oui il faut que ça soit en minuscule car c'est le nom d'une instance de ton ManagedBean

  5. #5
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    D'accord merci, je suis fixé comme ça.

    Je me doute que le problème ne vient pas de là mais à propos du code que tu m'as donné, l'as tu testé ?
    Je suis débutant en JSF et j'avoue que je ne vois pas d'où le problème peut venir.

    Encore merci et bonne journée.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Bonjour Vlaadz,

    En ce qui concerne l'utilisation des minuscules pour les appelations des Beans,

    Voici un lien l'expliquant un peu plus en détail.

    Sinon en ce qui concerne ton problème, je n'ai malheureusement pas de solutions mais peut-être un lien pouvant t'aider.

  7. #7
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Bonjour N4rc0,

    Et merci pour tes liens !
    Le premier m'a aidé à comprendre un peu mieux les Beans et je vais étudier le second, voir si je trouve la solution à mon problème.

    Bonne journée.

  8. #8
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Bonjour,

    Malheureusement mon problème est inchangé.
    J'ai eu le temps de créer d'autres boutons sur mon site permettant de changer de page, mais le problème est identique à chaque fois, j'obtiens toujours ce message, avec bien entendu des noms différents :

    Impossible de trouver un cas de navigation correspondant depuis l’ID de vue «/userConnection.xhtml» pour l’action «#{UserBean.navigation}» avec le résultat «connection».

    J'ai ajouté dans ma page faces-config.xml, sans savoir si c'était vraiment utile, le code suivant, tiré du second lien donné par N4rc0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <managed-bean>
         <description>Une personne gérée par JSF</description>
         <managed-bean-name>user</managed-bean-name>
         <managed-bean-class>csl.UserBean</managed-bean-class>
         <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    Je ne vois pas quelles informations pertinentes je peux ajouter.
    Cela peut-il être un problème venant des sessions ? SessionScoped, ApplicationScoped...

    Merci d'avance,
    Bonne journée !

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    En jsf, le résultat d'une action permet de dire à JSF quelle est la page à afficher. donc tu dois avoir des <navigation-rule> qui disent à JSF ce qu'il doit faire avec ce "connected" que tu obtiens en réponse à l'action.

  10. #10
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Merci pour ta réponse tchize_.
    La méthode connect() retourne dans tous les cas la valeur "connection".

    Voici le navigation-rule de mon XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <navigation-rule>
     
         <from-view-id>/userConnection.xhtml</from-view-id>
         <navigation-case>
     
               <from-action>#{userBean.navigation}</from-action>
               <from-outcome>connection</from-outcome>
               <to-view-id>/index.xhtml</to-view-id>
     
         </navigation-case>
     
    </navigation-rule>
    Je ne veux pas me servir de cette valeur "connection" dans ma page cible. Elle me sert juste à savoir si je peux changer de page ou non, or ici c'est toujours le cas.
    Je suis obligé de spécifier une action à faire avec cette valeur ?

Discussions similaires

  1. restriction de navigation/srollarea erreur de code!
    Par cylap dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/02/2012, 15h31
  2. [phpMyAdmin] navigation, puis "Erreur lors du démarrage de session"
    Par Concombre Masqué dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 27/07/2010, 16h20
  3. Erreur: FRM-40106 absence d'élément de navigation
    Par sofiane_bfm007 dans le forum Forms
    Réponses: 1
    Dernier message: 09/06/2008, 10h19
  4. Réponses: 3
    Dernier message: 19/04/2008, 23h40
  5. Vue Navigator affichage erreur
    Par Tan dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 04/12/2007, 09h36

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