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

Servlets/JSP Java Discussion :

Comprendre utilisation URL JSF


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut Comprendre utilisation URL JSF
    Bonjour,

    j'ai une application java/jsp utilisant Tomcat 5.5.

    J'ai une page accessible par "http://localhost:8080/sc/home.jsf" contenant un lien à la page "http://localhost:8080/sc/tManager.jsf".

    Si je clique sur ce lien, la deuxième page est bien chargée. Mais, l'URL dans mon browser (IE et Firefox) reste "http://localhost:8080/sc/home.jsf".

    Seulement si je clique une deuxième fois sur le lien (il reste à gauche comme menu), la page se recharge et l'URL devient "http://localhost:8080/sc/tManager.jsf". Ou aussi si je clique sur un troisième lien, comme si l'url soit toujours en retard d'une page.....

    Cela arrive avec tous les liens de mon application.

    J'aimerais bien comprendre ce comportement. Est-ce que quelqu'un peut me l'expliquer svp?

  2. #2
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    votre lien est en fait une action (CommandLink), et le résultat de cette dernière demande de charger la dite page via une navigation rule? Si oui:


    Il faut faire une distinction entre l'URL de la page (ce que le navigateur vous a envoyé) et les ressources interne à la webapp que vous utilisez pour faire l'affichage. Quand on soumet un formulaire (ce que vous faite) il est envoyé vers la page qui l'a généré. En interne, JSF fait un peu la popote qu'il veux et au final décide de quoi afficher. Mais il y a déjà bien longtemps que le navigateur a déjà décidé de l'url a afficher. Ainsi, dans votre cas il se passe ceci:

    1) Le navigateur demande home.jsf
    Le navigateur a demandé: home.jsf
    JSF a affiché: home.jsf
    2) vous cliquez sur le bouton du formulaire
    Le navigateur a demandé (avec formulaire): home.jsf
    JSF a traité: home.jsf (traitement du formulaire)
    JSF affiche le contenur de tManager.jsf
    3) vous cliquez encore
    Le navigateur a demandé (avec formulaire): tManager.jsf
    JSF a traité: tManager.jsf (traitement du formulaire)
    JSF affiche le contenu de tManager.jsf


    Maintenant pour corrgier l'URL, vous avez deux possibilité
    1) (et la plus propre) remplacez vos CommandLink par des outputLink, qui vont directement à la page voulue. Ca fera moins de travail pour JSF
    2) (si l'action est nécessaire), mettre dans vos différentes navigation-rules l'instruction <redirect/>. JSF, au lieu d'afficher la page de résultat dira au navigateur: "maintenant, tu doit aller là". Plus de travail pour JSF, et deux requetes au final à faire pour le navigateur.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    Merci! réponse parfaite!

    mon lien est un <x:commandNavigation> avec son action et effectivement j'ai bien des navigation-rule.

    tout est claire maintenant

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    il suffit d'ajouter "?faces-redirect=true" dans l'action
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandButton value="monBouton" action="/pages/maPage.jsf ?[COLOR="Blue"]faces-redirect=true"

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Points : 34
    Points
    34
    Par défaut
    bonjour,
    J'ai le même problème et j'ai essayé la solution de redirect toujours j'ai un décalage des url
    Merci d'avance de votre aide

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

Discussions similaires

  1. Problème utilisation Maven + JSF + JPA
    Par diakinet dans le forum JSF
    Réponses: 1
    Dernier message: 15/02/2012, 23h24
  2. EJB Exemple d'utilisation Sur JSF
    Par abdego dans le forum JSF
    Réponses: 1
    Dernier message: 15/02/2012, 11h13
  3. Comprendre utilisation mémoire
    Par KaloOopS dans le forum C#
    Réponses: 5
    Dernier message: 15/07/2011, 17h06
  4. Comment lancer un BATCH utilisant du JSF ?
    Par alkalineUltra dans le forum JSF
    Réponses: 2
    Dernier message: 03/11/2008, 14h54
  5. utilisation javascript jsf
    Par rapidoss dans le forum JSF
    Réponses: 10
    Dernier message: 04/02/2008, 13h42

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