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}"/>);
}
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}"/>);
}
C'est dommage !
Bon, on connaitrait l'erreur que tu as rencontrée, ce serait mieux, mais n'en demandons pas trop...
Peut-être qu'en mettant des guillemets ça marcherait mieux (c'est une chaine de caractères qu'il faut donner au alert) :
ou même ça (à tester) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function afficherMessage(){ alert('<h:outputText value="#{msgs.info}"/>'); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function afficherMessage(){ alert("#{msgs.info}"); }
J'ajoute, pour la lisibilité, la possibilté:
alert(<h:outputText value="'#{msgs.info}'"/>);
A noter que le mieux reste, pour ce genre de chose:
comme çà, pas de problème avec la présence des guillemets dans le message.
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)
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...
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é.
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 :
Le plus simple serait quand même
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é);
Non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 alert("<h:outputText value="#msgs.info">");
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 :
et ça fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <script type="text/javascript"> alert('<h:outputText value="#{monBean.unString}"/>'); </script>
Toutefois, Facelets a pu jouer sur la réussite de ce test...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager