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 :

<h:outputText dans un code java script


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 46
    Points
    46
    Par défaut <h:outputText dans un code java script
    J'ai eu une erreur quand j'ai inséré un code JSF dans un code java script

    function afficherMessage(){
    alert(<h:outputText value="#{msgs.info}"/>);
    }

  2. #2
    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 jeedev Voir le message
    J'ai eu une erreur quand j'ai inséré un code JSF dans un code java script
    C'est dommage !
    Bon, on connaitrait l'erreur que tu as rencontrée, ce serait mieux, mais n'en demandons pas trop...

    Citation Envoyé par jeedev Voir le message
    function afficherMessage(){
    alert(<h:outputText value="#{msgs.info}"/>);
    }
    Peut-être qu'en mettant des guillemets ça marcherait mieux (c'est une chaine de caractères qu'il faut donner au alert) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function afficherMessage(){
    alert('<h:outputText value="#{msgs.info}"/>');
    }
    ou même ça (à tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function afficherMessage(){
     alert("#{msgs.info}");
     }

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    J'ajoute, pour la lisibilité, la possibilté:

    alert(<h:outputText value="'#{msgs.info}'"/>);

    A noter que le mieux reste, pour ce genre de chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span id="message" style="display:none"><h:outputText value="#{msgs.info}"/></span>
     
    alert(getElementById("message").innerHTML)
    comme çà, pas de problème avec la présence des guillemets dans le message.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    ...
    alert(<h:outputText value="'#{msgs.info}'"/>);
    ...
    Sauf que le problème vient de l'absence de " ou ' autour du message (comme l'a indiqué romaintaz)

    Sans, javascript va considérer que c'est une variable et ça va sérieusement couiller !

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Ben lit bien c'est présent

  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 : 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
    En fait le problème avec le composant <h:outputText>, c'est qu'il va générer un <span> en HTML.
    Donc la solution de mettre ce composant dans les parenthèses d'alert ne va pas trop marcher...

    Si alert("#{...}"); ne fonctionne pas, l'idée de tchize_ (avec le coup du innerHTML) fonctionnera...

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    En fait le problème avec le composant <h:outputText>, c'est qu'il va générer un <span> en HTML.
    Uniquement si "style" ou "class" ont été défini sur le tag.

  8. #8
    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 OButterlin Voir le message
    Sauf que le problème vient de l'absence de " ou ' autour du message (comme l'a indiqué romaintaz)
    Citation Envoyé par tchize_ Voir le message
    Ben lit bien c'est présent
    Oui, (il y a bien "'...'"), mais ça ne résoudra rien je pense (voir mon post d'avant)...

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 46
    Points
    46
    Par défaut
    Merci pour vos réponses
    J'ai utilisé
    <span id="message" style="display:none"><h:outputText value="#{msgs.info}"/></span>

    alert(getElementById("message").innerHTML)

    et ça a marché pour moi

    Juste une précision ;
    moi j'utilise des clés de cette façon :
    message.information.saisirValeur = Veuilelz saisir la valeur.

    c'est pour cela quand j'ai utilisé
    alert('<h:outputText value="#{msgs['message.information.saisirValeur']}"')
    ça n'a pas merché.

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Sauf erreur de ma part (extrêmement envisageable d'ailleurs), <h:ouputText>
    va écrire le texte "value" en faisant un "escape" sur les caractères.
    Donc, pour le problème initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    alert(<h:outputText value="#msgs.info">);
    
    on aura (par exemple si msgs.info vaut Le texte contenu dans la propriété)
    
    alert(Le texte contenu dans la propriété);
    Le plus simple serait quand même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert("<h:outputText value="#msgs.info">");
    Non ?

  11. #11
    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 jeedev Voir le message
    J'ai utilisé
    <span id="message" style="display:none"><h:outputText value="#{msgs.info}"/></span>

    alert(getElementById("message").innerHTML)
    Tu peux simplifier un peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:outputText value="#{msgs.info}" id="messageBox" style="display: none;"/>
    alert(getElementById("idFormulaireSIlExiste:messageBox").innerHTML);

    Sinon je viens d'essayer ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
        alert('<h:outputText value="#{monBean.unString}"/>');
    </script>
    et ça fonctionne très bien.
    Toutefois, Facelets a pu jouer sur la réussite de ce test...

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Toutefois, Facelets a pu jouer sur la réussite de ce test...
    Y a pas de raison, çà dois fonctionner en jsp aussi.

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

Discussions similaires

  1. Script Shell dans un code java
    Par chercheur111 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 08/04/2012, 15h32
  2. Intégrer un script python dans du code java
    Par Thomas77380 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 01/06/2011, 13h32
  3. injecter un code java script dans android
    Par étudiante_info dans le forum Android
    Réponses: 0
    Dernier message: 18/03/2011, 14h39
  4. executer du code Java Script dans un fichier XML
    Par said_ini dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/04/2009, 01h38
  5. Soucis dans un code java script :(
    Par skand dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/03/2008, 11h52

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