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 :

rafraichir une page après un téléchargement


Sujet :

JSF Java

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 259
    Points : 128
    Points
    128
    Par défaut rafraichir une page après un téléchargement
    Je veux rafraichir ma page après une action de téléchargement d'un zip le problème est que une fois la pop du zip ouvert, ma page ne s'actualise pas automatiquement comme voulu.
    Est qu'il y a un moyen de le faire le refresh après le download?
    Peut être envoyer le zip dans un iframe mais je ne sais pas utiliser les iframes
    un autre moyen le faire proprement?

    voici ma fonction:

    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
    24
    25
    26
    27
     
     
    public String telecharger(ActionEvent event) 
    	{
    		try {
     
     
    		final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
     
     
    			byte[] zip = getZipData();
    			ServletOutputStream sos;
    			sos = response.getOutputStream();
    			response.setContentType("application/zip");
    			response.setHeader("Content-Disposition", "attachment; filename=\"monArchive.zip\"");
    			sos.write(zip);
    			sos.flush();
    			sos.close();
     
    			FacesContext.getCurrentInstance().responseComplete();  
    		   } catch (Exception e) 
    		 {
    			e.printStackTrace();
    			log.error("error during the download: "+e);
    		 }
    		 return "maPage";
    	}
    ma vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     
     
    <h:commandButton  value="download" actionListener="#{monBean.telecharger}"/ >
    </h:commandButton>

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 259
    Points : 128
    Points
    128
    Par défaut
    peut être que je me suis pas fait comprendre, comment faire en sort que mon download ne se fasse que dans mon iframe ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Points : 48
    Points
    48
    Par défaut Bonjour
    return "maPage";
    return null ; ?

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Ce problème n'est pas si simple, car quand on fait dans le code de son action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().responseComplete();
    on indique à JSF que l'on a généré une réponse HTTP et que ce n'est pas la peine de réaliser la dernière phase, celle qui va générer la réponse, à savoir construire le HTML de la page de réponse.
    Au final, le String retourné par la méthode n'a aucun intérêt (sauf en cas d'erreur de génération du fichier à retourner).

    Le navigateur, lui, va recevoir une réponse HTTP contenant un fichier (ZIP, DOC, PDF, etc.), et donc va proposer à l'utilisateur de l'afficher ou de le sauvegarder.
    Mais il n'est pas possible de recevoir 2 réponses, l'une contenant le ZIP, l'autre contenant la page à rafraichir.

  5. #5
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par pepero Voir le message
    return null ; ?
    Ca ne changera rien pour 2 raisons :

    • cf. ma précédente réponse;
    • elle utilise un actionListener, méthode qui ne retourne normalement rien du tout. C'est une erreur dans son code que de mettre un String de retour. Cependant, utiliser un action ne changerait rien au problème ici.

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 259
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Ca ne changera rien pour 2 raisons :

    • cf. ma précédente réponse;
    • elle utilise un actionListener, méthode qui ne retourne normalement rien du tout. C'est une erreur dans son code que de mettre un String de retour. Cependant, utiliser un action ne changerait rien au problème ici.
    vous avez bien resumé la situation, mais y a t il un moyen de contourner?
    avec les RichFaces?

  7. #7
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Je ne sais pas trop. Peut être en utilisant un <a4j:commandLink>, puis en jouant avec le oncomplete pour rafraichir la page, ou éventuellement appeler une action Ajax dont le seul but est de rafraichir la page. Mais ce n'est pas sûr que ça marche, ou que ça fasse ce que l'on attend. Bref : à tester

  8. #8
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    As-tu finalement trouvé une solution à ton problème ?
    Je voudrais faire la même chose, rafraîchir la page après un téléchargement, mais je rame totalement...

Discussions similaires

  1. Rafraichir une page après fermeture pop up
    Par keybon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/03/2013, 08h30
  2. Rafraichir un page après appel d'une fonction
    Par friedamichelle dans le forum JSF
    Réponses: 5
    Dernier message: 23/02/2011, 16h00
  3. [Plugin] Rafraichir une page apres un fancybox ?
    Par Pharamousse dans le forum jQuery
    Réponses: 0
    Dernier message: 13/02/2010, 20h45
  4. rafraichir une page après une action
    Par jamesleouf dans le forum Struts 1
    Réponses: 1
    Dernier message: 25/03/2009, 12h22
  5. [jsp]rafraichir une page
    Par GreenJay dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/07/2004, 14h41

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