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 :

PB retour arrière navigateur


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut PB retour arrière navigateur
    SAlut a tous,

    je travail sur une appli web avec MyFaces et j'ai une partie avec une succession de formulaire. Sur chacun des formulaires se trouve un lien 'Retour' mais le problème vient de la possibilité de faire 'Retour' sur la navigateur ( la flèche quoi).
    En effet dans ce cas le navigateur remet la page précédente mais ne recharge pas le contexte.

    EX :
    la page1 contient le Form1 qui se valide avec la méthode valid1 du bean VBean
    la page2 contient le Form2 qui se valide avec la méthode valid2 du bean VBean

    Si je valide le 1er et qu'a la 2em page je fais 'retour' sur le browser, j'ai la page d'avant qui s'affiche mais si je clique sur le bouton valider à ce moment, il ne relance pas la méthode valid1 je ne sais pas trop ce qu'il fait d'ailleurs mais en tout cas ça bug grave.

    Bref, savez vous si on peut gérer le retour arriere avec MyFaces (pour qu'il relance valid1 apres le retour par ex) ou bien comment bloquer le retour arriere du navigateur sur ces pages là?

    Parce que là je galère et je pige pas grand chose.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    Alors, j'ai l'impression qu'il recharge la page au moment du deuxieme clic sur le bouton valider de la page1.
    En fait, ma succession de page c'est un peu comme un parcourt d'arbre. L'utilisateur va chercher un élément dans l'arbre et on sait pas a quelle profondeur il va s'arreter. j'utilise une objet java appelé 'objetcourant' pour stocké le dernier élément choisi . Les anciens éléments choisis sont stocké dans une liste.

    démarche :
    page1, clic sur le choix
    page2, retour arriere du navigateur
    page1 (identique a la 1er fois), clic sur le choix
    page1 , affichage bouzillée

    A la derniere étape (page1 , affichage bouzillée) c'est parce qu'il raffiche la page1 mais avec les infos (objet courant) choisi à la 1er étape et affiché a la deuxieme. donc forcément ça bug de partout, ça fait n'imp .

    Le problème vient du fait qu'apres le clic de l'étape 3 il reload la page1 au lieu de relancer la méthode de validation comme la première fois. En effet, si il le faisait je pourrait m'y retrouver , et remodifier l'objet en cours etc.

  3. #3
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    Bon alors...j'ai affiné le probleme.

    Dans les pages , j'affiche une une liste d'élément stockée dans une bean. Pour chaque élément de bean.liste j'affiche une ligne qui est un lien cliquable.
    EX pour illustré :
    Page1 : liste de ville. Je clic sur Paris
    PAge2 : liste des lycée dans Paris. je clic sur un lycée.
    Page3: liste des Salles du lycée.
    Etc.

    A Chaque Page c'est la liste du bean qui est affichée.
    et a chque clic une méthode 'cherche' du même bean qui a la liste en attribut est appelée

    Maintenant mettons que j'ai 50 ville en page1 et 5 établissements en page2. Je fais un retour arriere en page2 pour retourner en page1 et ici 2 possibilités de 'bug':
    SI je clic sur un éléments compris entre le 6em et le 50em de la liste, la page suivante sera a nouveau la page1 rechargée avec une liste de 5 éléments de même nom.Bref une liste de 5 éléments erronée. Il doit affiché la liste de la page2 mais comme on affiche pas les meme données sur les meme pages, ben ça fouare.
    Si je clic sur un élément compris entre le 1er et le 5em de la liste, là seulement il me relance la méthode du bean qui est appelée a chaque clic sur un choix

    BREF, c'est un peu n'imp et je pige pas. Enfin je me dis que quand l'élement cliqué n'est forcément plus dans la liste il détecte un problème et recharge la page. Mais moi ça m'arrange pas du tout car dans la méthode qui devrait être appelée je pourrais très bien détectée le retour arrière effectué et corrigé moi meme la liste.

    NB1: ma liste est affichée avec une datatable tomahawk. (J'utilise facelets)
    et le rang de l'élément cliqué est transmis a la méthode appelée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <t:dataTable value="#{bean1.listeFils}" var="element" rowIndexVar="rowindex">
     
        <h:column>
        		<h:commandLink style= " font-weight:bold ; text-decoration:underline ; " action="#{bean1.cherche}">
      			<f:param name="row" value="#{rowindex}"/>
    		<h:outputText value="#{element.lib}"/>
    		</h:commandLink>
        </h:column> 
     
    </t:dataTable>

  4. #4
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    bon ben j'ai résolu le problème.
    J'ai viré la datatable. j'ai mis un forEach pour chaque élément de la table j'affiche un lien.
    du coup il rappel tout le temps la méthode.
    ouf !!


    MORALITE : utiliser les datatable avec intelligence. Dans mon cas ce n'était pas du tout le bon choix.
    DATATABLE

    PS : J'ajoute que j'ai également du mettre ce code dans le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    	<param-value>client</param-value>
    </context-param>
    sans quoi ça ne marche pas.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 19/08/2011, 08h57
  2. Question sur le retour arrière du navigateur
    Par progamer54 dans le forum JSF
    Réponses: 3
    Dernier message: 30/05/2007, 18h35
  3. retour arrière (undo)
    Par pierrot67 dans le forum Bases de données
    Réponses: 5
    Dernier message: 16/06/2006, 15h27
  4. Retour arrière sur une iframe
    Par Bicnic dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/05/2006, 16h34
  5. Retour arrière (back) + reset des formulaires
    Par Bicnic dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 03/04/2006, 09h43

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