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 un page après appel d'une fonction


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 un page après appel d'une fonction
    J'aimerais actualiser ma page tout juste après l'exécution de la fonction "download"
    Vu que je suis sur la meme page les variables de mon bean sont actualisées mais vu que la page non, cela ne fait pas ce que j'aimerais.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <h:commandButton  value="TELECHARGEMENT" actionListener="#{bean.download}"

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Quand j'ai besoin de rafraichir une page lors d'un appuie sur un bouton par exemple, je met à la fin de ma fonction (ici : download) return "go.to.mapage". Avec go.to.mapage défini dans le faces-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <navigation-rule>
       <navigation-case>
    	<from-outcome>go.to.mapage</from-outcome>
    	<to-view-id>/mapage</to-view-id>
       </navigation-case>
    </navigation-rule>
    C'est une piste pour t'aider !

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut
    Si tu peux te permettre d'utiliser les richfaces, tu peux aussi remplacer ton h:command par un a4j:commandlink.

    Je cite directement la doc pour expliquer en quoi ça peut aider dans ton problème :
    The <a4j:commandLink> component is very similar to the <h:commandLink> component, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back. It's not necessary to plug any support into the component, as Ajax support is already built in.
    Source : JBoss.org

    En gros, tu peux utiliser la propriété 'reRender=[nom de ton conteneur]' pour rendre toute ou partie de ta page.

    C'est une alternative à la solution de c.t.k (au demeurant tout à fait correcte aussi, me semble t'il)

  4. #4
    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
    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
     
     
    public String download(ActionEvent event) 
    {
                    ServletOutputStream sos = null; 
                    byte[] zip = getFileData;
               if( zip !=null){
    		sos = response.getOutputStream();
    		response.setContentType("application/zip");
    		response.setHeader("Content-Disposition", "attachment;      filename=\"file.zip\"");
    		sos.write(zip);
    		sos.flush();
    		FacesContext.getCurrentInstance().responseComplete();
                    }
    return "go.to.mapage"
     
    }
    Voici le code de mon action de le chargement
    je constate que ma page s'actualise correctement quand je n'ai pas de flux
    c'est à dire que je passe pas mon "if"
    mon but c'est d'actualiser quand bien même quand je passe dedans
    merci

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 28
    Points
    28
    Par défaut
    tu peux mettre le code complet de ton managed bean ?
    il me parait que le problème et dans la session

  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
    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 downloadArchivePDF(ActionEvent event) throws IOException 
    {
    	try {
    	HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
    	final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
    	      ServletOutputStream sos = null; 
              byte[] zip = getFileData;
       if( zip !=null)
    		{
    		sos = response.getOutputStream();
    		response.setContentType("application/zip");
    		response.setHeader("Content-Disposition", "attachment; filename=\"file.zip\"");
    		sos.write(zip);
    		sos.flush();
    		FacesContext.getCurrentInstance().responseComplete();
                   }
     
     
              } catch (Exception e) 
    	  {
    		e.printStackTrace();
    	  }
    return "go.to.mapage"
     
     
    }

Discussions similaires

  1. Violation d'accès après appel d'une fonction DLL
    Par colorid dans le forum Langage
    Réponses: 9
    Dernier message: 12/06/2013, 12h15
  2. Réponses: 6
    Dernier message: 27/03/2010, 14h48
  3. appel d'une fonction qui est dans une autre page
    Par guppy33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/08/2006, 12h05
  4. charger une page apres execution d'une fonction
    Par lacsap49 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2006, 16h25
  5. [FPDF] Erreur après appel d'une fonction avec include
    Par orus8 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 04/11/2005, 10h49

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