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 :

Manipulation du javascript d'une jsp depuis le bean managé


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par défaut Manipulation du javascript d'une jsp depuis le bean managé
    Bonjour,

    Je voudrais savoir si il est possible de désigner une méthode javascript (maMéthode()) présente dans une jsp depuis le bean managé de cette même jsp, dans le cadre du framework JSF.

    Y'a t'-il des possibilités du coté du FacesContext, où l'utilisation d'une API type DOM.

    Je débute du coté des JSF, donc si vous pouviez me guider, ça serait sympa.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 91
    Par défaut
    Je recherche a peu pres la meme chose.
    Lancer du code javascript depuis un bean.

    Mon but est d'ouvrir un nouvel explorateur internet lorsque l'utilisateur clique sur un bouton. Je passe par une action, qui remplie le lien ou aller, et qui cree le code javascript suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String javaScriptText = "window.open('"+ url +"', 'popupWindow', 'dependent=yes, menubar=no, toolbar=no');"
    Et j'aimerai pouvoir executer ce code dans cette action..
    La seule solution que je trouve pour l'instant est d'utiliser la librairie Tomahawk's ExtensionFilter AddResource. Mais je ne voudrais pas rajouter de librairie, j'ai deja RichFaces.

    Quelqu'un a t il une idee, peut etre une autre facon d'ouvrir cette fenetre ?

    Merci !

  3. #3
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Une solution possible serait de faire un truc comme ceci:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <body onload="#{bean.jsCode}">
      <h:inputText value="#{bean.url}" />
      <h:commandButton action="#{bean.go}" />
    </body>
    (j'ai pas mis le form, mais c'est clair qu'il nous faut un !

    et dans le managed bean, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private String jsCode="";
    private String url="";
     
    public String go(){
      jsCode="window.location="+url;
      return null;
    }
    Bonne chance.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 91
    Par défaut
    Hmm est-tu sur de ta solution ? cela ne veut pas marcher chez moi..

    Pour preciser un peu, en fait j'utilise un PanelMenu, et non un bouton, dont je met a jour l'action du panelItemMenu.

    La partie que je ne comprend pas est le onload. Lorsque la page est rechargee, jsf lance le javascript situe dans la string jsCode ? Donc au debut il ne fait rien car c'est null, et ensuite il devrait executer le window.location.
    J'ai bien compris ?

    Ca m'a l'air correct mais ca ne veux pas marcher !!

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par Dr@ke Voir le message
    La partie que je ne comprend pas est le onload. Lorsque la page est rechargee, jsf lance le javascript situe dans la string jsCode ? Donc au debut il ne fait rien car c'est null, et ensuite il devrait executer le window.location.
    J'ai bien compris ?
    En gros, ça va se passer comme cela :

    Le serveur va créer la page en HTML correspondant à ta JSP.
    Quand il va écrire la balise HTML body, il va demander au bean bean ce que vaut sa propriété jsCode afin de remplir l'attribut onload de la balise body.

    Au niveau client, une fois que la page a terminé de se charger, le code Javascript placé dans le onload de la balise body va s'exécuter.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  6. #6
    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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    En ce qui concerne ta question, définir ta fonction JS dans l'attribut onclick du h:commandButton (ou un autre composant), ça ne suffirait pas ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Pardooon ... j'ai oublié de mentionner que ça ne marche que si on utilise facelets comme ViewHandler ... le pauvre JSP tout seul ne permet pas de mettre des EL n'importe où (dans le onload, ou encore dans <script>).

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 91
    Par défaut
    CommandButton aurait suffit mais je devais le mettre dans le PanelMenu, mais étant donne que maintenant je dois rajouter une page intermédiaire demandant une date, le PanelMenu pointera vers celui ci, et je pourrais y mettre un commandButton.
    Donc je remplis le champs onclick avec #{bean.jsCode} et cela devrait marcher non ?
    Je vais essayer, je vous tiens au courant !

    Djo.mos : Facelets c'est bien la lib pour diviser la page (template.xhtml .. etc) ? Parce que j'utilise ceci, et ca ne marchait pas tout de meme..

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

Discussions similaires

  1. [ JSP ] : javascript dans une jsp
    Par Pi2 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/11/2006, 13h33
  2. JavaScript dans une JSP
    Par casgr1 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/05/2006, 13h42
  3. Struts - Javascript dans une jsp
    Par mariemor64 dans le forum Struts 1
    Réponses: 9
    Dernier message: 20/04/2006, 12h48
  4. Javascript dans une jsp
    Par mariemor64 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2006, 12h43
  5. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55

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