bonjour,
je voudrais passer dans une fontion javascript un bean:message, j'ai procédé comme ça mais ça ne marche pas:
quelqu'un à une idéeCode:
1
2
3onClick="showTool(<bean:message key='page.accueil.id'/>)" ...
merci d'avance
Version imprimable
bonjour,
je voudrais passer dans une fontion javascript un bean:message, j'ai procédé comme ça mais ça ne marche pas:
quelqu'un à une idéeCode:
1
2
3onClick="showTool(<bean:message key='page.accueil.id'/>)" ...
merci d'avance
qu'est-ce qui ne marche pas?
Peux-tu donner le résultat HTML?
si ton bean contient une chaine de caractères, tu dois la mettre entre des quotes :
tu peux utiliser soit le simple quote ', soit back-slashé le double-quote : \"Code:onClick="showTool('<bean:message key='page.accueil.id'/>')"
:mouarf:
le '<bean:message...>' ne sera pas interprété.Citation:
tu peux utiliser soit le simple quote ', soit back-slashé le double-quote : \"
Quant au \"..., cela te donnera des erreurs dans ta JSP.
utilises une variable grace à la jstl core:
Code:
1
2
3
4
5 <c:set var="myMsg"><bean:message key='message'/></c:set> onClick="showTool('${ myMsg }')"
euh, tu as faux :
le '<bean:message...>' sera interprété... je viens de faire le test, et ça fonctionne sans problème.
En effet, les quotes entourant le taglib bean ne sont pas interprétés par la JSP... il se "fiche" du code HTML positionné avant et après le taglib.
Ce qui est important, c'est que les quotes utilisées dans le taglib soient correctement ouvertes et fermées.
Par contre, après, il faut faire attention à l'interprétation au niveau du client.. le javascript.
tu peux écrire indifférement :
ça va fonctionner.Code:
1
2
3
4 "<bean:message key="message"/>" '<bean:message key="message"/>' "<bean:message key='message'/>" '<bean:message key='message'/>'
Par contre, par rapport au js, il faut bien faire attention à différencier les quotes utilisées.
il faut insérer des simple quote dans des double quote et inversement, mais ne pas mettre des simple quote dans des simple quote... et réciproquement pour les double quote.
<a href="#" onclick="alert('bonjour')"> => OK
<a href="#" onclick='alert("bonjour")'> => OK
<a href="#" onclick="alert("bonjour")"> => KO
<a href="#" onclick='alert('bonjour')'> => KO
faux, la JSP n'interprète pas ce code... mais par contre, ça va générer des erreurs sur le client en javascript... je pensais que ça allait marcher.. désolé.Code:Quant au \"..., cela te donnera des erreurs dans ta JSP.
ps : je n'ai pas apprécié le :mouarf:, surtout quand ce n'est pas justifié.
C'est bizarre parce que moi qd j'essai :
et bien, j'ai l'erreur :Code:<html:button property="" onclick="alert('<bean:message key="message"/>')">test</html:button>
c'est pour cela que j'ai :mouarf:...Code:
1
2 org.apache.jasper.JasperException: /jsp/alertRule/alertRulesUploadBox.jsp(17,68) Symbole égal (equal) attendu ....
en fait, ce que tu fais ne marchera pas... tu ne peux pas inclure le résultat d'un taglib bean dans la définition des attributs d'un taglib html.
si tu écris :
tu verras que le HTML généré sera :Code:<html:button property="" onclick="<bean:message key='message'">test</html:button>
ça fonctionne aussi en inversant les double quote et les simple quote.Code:<input type="button" onclick="<bean:message key='message'" value="test"/>
Par contre, si tu écris :
effectivement, ça plante... pour les non-mélanges de quote.Code:<html:button property="" onclick="<bean:message key="message"">test</html:button>
Et dans ce qu'al3alwa a écrit, on ne sait pas si son attribut est celui d'un taglib ou d'une balise html standard
Donc, pour résumé :Code:onClick="showTool(<bean:message key='page.accueil.id'/>)"
Si le résultat de bean:message est à écrire dans un attribut d'un taglib, il faut passer par la jstl et faire en sorte que les taglibs de struts soient compatibles avec les Expressions Languages :
sinon, on peut directement écrire le taglib :Code:
1
2 <c:set var="myMsg"><bean:message key='message'/></c:set> <html:button property="" onClick="showTool('${ myMsg }')">test</html:button>
Code:<input type="button" name="" value="test" onclick="showTool('<bean:message key='message'/>');"/>
bonjour,
je m'excuse pour le retard :oops:
en fait j'utilise le onClick dans le tag <html:img ... ou <img
merci
Et une dernière au cas où...
A+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <html> <head> <script> var MESSAGE_1 = "<bean:message key="ma.cle"/>"; </script> </head> <body> ... <img src="..." onclick="showMessage(MESSAGE_1)" .../> ... </body> </html>
merci à vous mattheox et jdvacheron, grace à vous mon problème est résolu. :king::yaisse2: