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 :

[Richfaces]Inclusion d'iframe dans une page jsf


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut [Richfaces]Inclusion d'iframe dans une page jsf
    Bonjour,

    J'arrive cette fois avec un problème un peu plus corsé.

    J'affiche une page munie de son propre controleur. Cette page contient une iframe qui appelle une servlet pour afficher un document PDF.

    Tout marche très bien sauf que plus aucune action sur ma page principale ne fonctionne... lorsque je clique, cela aboutit systématiquement à un rechargement de ma page et l'action n'est pas effectuée.

    Je vais donner un peu de code pour simuler la situation.

    page jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <a4j:keepAlive beanName="afficherCourrierHandler" />
    ...
    <h:commandLink action="#{afficherCourrierHandler.repondre}" 
            value="#{msg.GLOBAL_action_repondre}" />
    ...
    <iframe src="<%=request.getContextPath() %>/AfficherCourrierServlet" 
            height="500" width="400"/>
    Ma servlet s'appelle /AfficherCourrierServlet. Elle affiche un document PDF qui lui est passé sous la forme d'un tableau de byte et envoyé sur la sortie standard.
    Elle fonctionne (le pdf s'affiche).

    Le lien permettant de lancer l'action s'affiche aussi.
    afficherCourrierHandler.repondre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public String repondre() {
            System.out.println("AfficherCourrierHandler : repondre()");
            //on met le courrier choisi dans la requête
            FacesContext facesContext = FacesContext.getCurrentInstance();
            HttpServletRequest request = (HttpServletRequest) 
                    facesContext.getExternalContext().getRequest();
            request.setAttribute("courrierRepondu", courrier);
     
            System.out.println("AfficherCourrierHandler : FIN repondre()");
            //on va sur la page poster.jsp
            return "repondre";
    }
    A noter que lorsque je met en commentaire l'iframe, mon action fonctionne (au moins le premier System.out.println s'affiche).
    Lorsque l'iframe est là, la page se réinitialise avec le bean alors qu'il est marqué en a4j:keepAlive. Il ne devrait donc pas se réinitialiser...

    Est-ce que quelqu'un aurait une idée sur la question ? La solution m'échappe totalement :s.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Bon ben... j'ai résolu le problème. En fait il m'aura fallu le poser pour en trouver la solution.

    La solution est simple : il ne faut pas mettre l'iframe dans le formulaire.
    J'ai donc exclu de mes balises <h:form> l'iframe et elle n'a plus parasité l'exécution de mon action.

    Je ne sais toujours pas pourquoi l'iframe la parasite mais mon problème est résolu.
    Merci de votre aide !

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

Discussions similaires

  1. Integrer un taglib dans une page jsf
    Par Sun03 dans le forum JSF
    Réponses: 23
    Dernier message: 28/04/2008, 11h23
  2. Réponses: 3
    Dernier message: 19/04/2008, 17h32
  3. JfreeChart dans une page jsf
    Par hicham.gi dans le forum JSF
    Réponses: 4
    Dernier message: 10/04/2008, 16h02
  4. "Affichage conditionnel" dans une page JSF
    Par Niniz dans le forum JSF
    Réponses: 2
    Dernier message: 19/07/2007, 12h14
  5. Réponses: 6
    Dernier message: 02/04/2007, 19h13

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