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 :

[CommandLink] Problème de reload de la page cible


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut [CommandLink] Problème de reload de la page cible
    Bonjour,

    Je suis actuellement entrain d'essayer de faire en sorte d'avoir un datatable avec des liens qui mènent vers une autre section de mon site pour pouvoir obtenir des informations sur l'élément selectionné.

    Mon problème est que le commandLink fonctionne uniquement si la page cible n'a pas été chargé une première fois (le managedBean est en session scope), je veux dire par là que si je passe par ce lien en premier, je vois tout le cheminement de la génération de la page avec les tag que j'y ai placé mais une fois fait, si je reclique sur un autre lien je suis renvoyé vers la page en question mais aucun reload n'est fait.

    J'aimerai donc savoir s'il y a un moyen de provoquer un reload pour pouvoir ensuite placer l'utilisateur dans l'état qui correspond au lien sélectionné ?

    Merci d'avance pour votre aide.

  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 peux nous donner ton code..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut
    Désolé de ne rien avoir donné directement mais je ne vois pas trop quoi donner a part un exemple de lien qui est dans une cellule de la datatable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:commandLink id="numcontract" action="contractualisation" value="#{contract.numcontractualisation}"  ><f:param name="idContractSelected" value="#{contract.idcontractualisation}" /></h:commandLink>

  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 commandLink est bien inclu dans un form?
    tu vérifie si l'action s'exécute bien?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut
    Comme je le disais plus haut, tant que la page cible n'a pas été chargé une fois auparavant, le lien fonctionne (redirection vers la page cible et chargement des données) mais une fois fait, impossible de refaire cette même action avec un autre lien car la page cible ne veut pas se recharger avec les nouvelles données (l'id de la contractualisation dans le cas présent).
    Ce problème est le même si j'ai déjà consulté la page cible auparavant et qu'ensuite je clique sur un des liens pour arriver sur cette page : la rediction est ok mais pas de reload de la page.

  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
    c'est une autre page ou tu reste sur la même?
    essaye avec un commandButton voir si ça marche.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut
    Oui c'est bien une autre page avec un autre managedBean donc j'utilise une fonction qui controle la provenance du visiteur suivant l'existence ou non de l'id comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public String externAccess(){
    		FacesContext context = FacesContext.getCurrentInstance();
    		HttpServletRequest myRequest = (HttpServletRequest)context.getExternalContext().getRequest();
    		myRequest.getSession();
    		System.out.println("Test d'acces externe");
    		return myRequest.getParameter("idContractSelected");	
    	}
    Je viens de tester avec un commandButton et la redirection est faite mais rien ne se passe dans tous les cas.

  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
    je vois que tu ne fais rien de spécial dans ton action, c'est quelque chose que tu peux faire dans la page, tu ne mets pas la valeurs de la ligne sélectionnée dans le bean, et comment tu définis la redirection??
    ça ne peux pas dépendre des données...de l'id sélectionné.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut
    Je définie la redirection simplement dans le faces-config lié au mot contractualisation qui redirige vers la page du même nom. L'id correspond à la contractualisation à afficher donc partant de là je peux entièrement retrouver l'état de la page cible à afficher. La fonction externAccess permet de vérifier que l'id existe donc qu'on vient d'une autre page dans le but d'afficher une contractualisation en particulier.

  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
    Citation Envoyé par Yohips Voir le message
    Je définie la redirection simplement dans le faces-config lié au mot contractualisation qui redirige vers la page du même nom. L'id correspond à la contractualisation à afficher donc partant de là je peux entièrement retrouver l'état de la page cible à afficher. La fonction externAccess permet de vérifier que l'id existe donc qu'on vient d'une autre page dans le but d'afficher une contractualisation en particulier.
    regarde dans la JSF, tu y trouvera trois manières pour récupérer la ligne courante d'une dataTable.


    Ce que tu peux faire:

    - Déclarer une variable dans ton bean session qui correspond à l'objet de la ligne sélectionnée.

    - Dans l'action tu passe la valeur de la ligne sélectionnée comme dans l'explication de la

    -Définir la redirection, dans l'action retourne une chaine que tu définira dans l'outcome.

    - Dans la page cible, tu affiche l'objet sélectionné.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 38
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    - Déclarer une variable dans ton bean session qui correspond à l'objet de la ligne sélectionnée.
    Jusque là ça va, dans mon cas je crée juste une variable Contractualisation dans le ManagedBean de la page cible.

    Citation Envoyé par Sniper37 Voir le message
    - Dans l'action tu passe la valeur de la ligne sélectionnée comme dans l'explication de la
    Je récupére l'objet via le dataModel.getRowData() mais qu'est ce que tu veux dire par passer la ligne ? J'envoi l'objet en variable de session (ce que je ne sais pas faire) ? Je modifie le managedbean de la page cible à partir du managedbean de la page initiale (je ne sais même pas si on peut faire ça) ?

Discussions similaires

  1. [CR11] Problème d'en-tête de page.
    Par Machuet dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 07/07/2005, 13h49
  2. probléme d'insert dans une page asp !
    Par tomtom25 dans le forum ASP
    Réponses: 5
    Dernier message: 31/03/2005, 16h04
  3. comment transmettre 1 variable de formulaire a 2 page cible
    Par NoobX dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/03/2005, 15h29
  4. Problème de chaine sur une page HTML
    Par Kerod dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2004, 16h23
  5. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40

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