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

Struts 1 Java Discussion :

bean:message comme parametre d'une fonction javascript


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut bean:message comme parametre d'une fonction javascript
    bonjour,
    je voudrais passer dans une fontion javascript un bean:message, j'ai procédé comme ça mais ça ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    onClick="showTool(<bean:message key='page.accueil.id'/>)"
    ...
    quelqu'un à une idée
    merci d'avance

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par al3alwa Voir le message
    mais ça ne marche pas:
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="showTool('<bean:message key='page.accueil.id'/>')"
    tu peux utiliser soit le simple quote ', soit back-slashé le double-quote : \"

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut


    tu peux utiliser soit le simple quote ', soit back-slashé le double-quote : \"
    le '<bean:message...>' ne sera pas interprété.

    Quant au \"..., cela te donnera des erreurs dans ta JSP.

    utilises une variable grace à la jstl core:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <c:set var="myMsg"><bean:message key='message'/></c:set>
     
    onClick="showTool('${ myMsg }')"

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par jdvacheron Voir le message

    le '<bean:message...>' ne sera pas interprété.
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "<bean:message key="message"/>"
    '<bean:message key="message"/>'
    "<bean:message key='message'/>"
    '<bean:message key='message'/>'
    ça va fonctionner.
    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


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quant au \"..., cela te donnera des erreurs dans ta JSP.
    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é.

    ps : je n'ai pas apprécié le , surtout quand ce n'est pas justifié.

  5. #5
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    C'est bizarre parce que moi qd j'essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:button property="" onclick="alert('<bean:message key="message"/>')">test</html:button>
    et bien, j'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    org.apache.jasper.JasperException: /jsp/alertRule/alertRulesUploadBox.jsp(17,68) Symbole égal (equal) attendu
    ....
    c'est pour cela que j'ai ...

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par jdvacheron Voir le message
    C'est bizarre parce que moi qd j'essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:button property="" onclick="alert('<bean:message key="message"/>')">test</html:button>
    et bien, j'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    org.apache.jasper.JasperException: /jsp/alertRule/alertRulesUploadBox.jsp(17,68) Symbole égal (equal) attendu
    ....
    c'est pour cela que j'ai ...
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:button property="" onclick="<bean:message key='message'">test</html:button>
    tu verras que le HTML généré sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="<bean:message key='message'" value="test"/>
    ça fonctionne aussi en inversant les double quote et les simple quote.
    Par contre, si tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:button property="" onclick="<bean:message key="message"">test</html:button>
    effectivement, ça plante... pour les non-mélanges de quote.

    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="showTool(<bean:message key='page.accueil.id'/>)"
    Donc, pour résumé :
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <c:set var="myMsg"><bean:message key='message'/></c:set>
    <html:button property="" onClick="showTool('${ myMsg }')">test</html:button>
    sinon, on peut directement écrire le taglib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="" value="test" onclick="showTool('<bean:message key='message'/>');"/>

  7. #7
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par mattheox Voir le message
    Donc, pour résumé :
    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
    c'etait mon propos...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    bonjour,
    je m'excuse pour le retard

    en fait j'utilise le onClick dans le tag <html:img ... ou <img
    merci

  9. #9
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    mattheox te donnes une solution equivalente pour les 2 cas

    Citation Envoyé par mattheox Voir le message
    en fait, ce que tu fais ne marchera pas... tu ne peux pas inclure le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <c:set var="myMsg"><bean:message key='message'/></c:set>
    <html:button property="" onClick="showTool('${ myMsg }')">test</html:button>
    sinon, on peut directement écrire le taglib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="" value="test" onclick="showTool('<bean:message key='message'/>');"/>

  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
    Et une dernière au cas où...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    A+

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci à vous mattheox et jdvacheron, grace à vous mon problème est résolu.

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

Discussions similaires

  1. Passer un parametre HTML à une fonction javascript
    Par justinus_9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2008, 02h46
  2. Réponses: 1
    Dernier message: 25/12/2007, 20h22
  3. Parametre d'une fonction javascript
    Par dorian53 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/01/2007, 13h29
  4. [C#] Passer des contrôles comme parametre dans une fonction
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 13h05
  5. [struts jsp javascript] parametre d'une fonction javascript
    Par chouchou93 dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/05/2006, 08h54

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