Bonjour,
Je souhaite passer un objet en paramètre d'une fonction javascript appelé dans la jsp
Mafonction (${monobjet})
Sauf que cela me provoque comme erreur invalid or unexpected token
Bonjour,
Je souhaite passer un objet en paramètre d'une fonction javascript appelé dans la jsp
Mafonction (${monobjet})
Sauf que cela me provoque comme erreur invalid or unexpected token
Salut,
Pour que ce que tu as écrit fonctionne, il faudrait que le résultat de l'expression ${monobject} ait un sens en JavaScript. Un nombre, un booléen, le nom d'une variable déclarée ou d'une fonction par exemple, du JSon aussi, etc. Si ton objet Java est une String, qui ne contient pas de quotes non successives, tu peux simplement ajouter des quotes : Mafonction ('${monobjet}'). Si ton objet est un bean, implémente sa méthode toString() pour que ça produise du JSon, et tu pourras récupérer les propriétés de ton bean directement en JavaScript.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Il s'agit d'un objet qui contient différents attributs et des références vers d'autres attributs. Par exemple, dans mon objet, j'ai un attribut de type Client qui lui contient des attributs. Je doit également pouvoir accéder à ses propriétés.
Et pourquoi implémenter la méthode toString(). Par défaut, elle existe déjà comme le bean hérite de la classe Object par défaut
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Oui c'est bien un objet java
J'obtien : monPackage.NomObjet@pleinDeCaractère
Et donc, tu penses que JavaScript pourrait faire quelque chose d'une telle expression ? Même si elle avait le moindre sens en terme de syntaxe, quelle chance pourrait-on avoir qu'un navigateur client puisse exploiter les propriétés d'un objet connu d'un serveur à partir d'une telle expression ?
Alors que si tu redéfinis la méthode toString() pour que ça retourne du JSon, l'expression aurait du sens pour JavaScript.
Maintenant, c'est sûr, il y a d'autres moyens de le faire. Disons que c'est une méthode très simple à mettre en place. Le mieux serait de faire une petite fonction de taglig, et d'écrire un truc du genre :
Il y a même des exemples de ça tout fait sur le net (chercher par exemple "Custom JSP taglib to convert Object to JSON", pour une taglib basée sur Jackson).
Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part Mafonction ('${namespace:toJson(monobjet)}');
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Et je redéfini ma méthode toString du style:
Je pourrait faire l'équivalent d'un getNom() et d'un getAdresse().getVille() en javascript
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public String toString(){ return "nom : "+nom+ "adresse :" + adresse;
Oui, mais presque, parce que là, c'est pareil, au final le JavaScript va être
Syntaxiquement incorrect donc.
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part maFonction(nom : nomadresse :adresse);
Il faudrait quelque chose comme ça
(et encore en non puriste, et attention aux quotes dans le nom ou l'adresse !)
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part maFonction({nom : 'nom', adresse: 'adresse'});
donc avec une fonction déclarée comme ça
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function maFonction(data) { if ( data.nom=='machin' && data.adresse=='truc' ) { // par exemple } }
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Mais si je met ma méthode toString() comme j'ai indiqué cela est correct?
Oui, tu peux implémenter la méthode toString(), comme je l'ai dit au début, mais il faut qu'elle retourne quelque chose qui va avoir un sens en JavaScript, sinon ça ne sert à rien. Et tu ne pourras de toute manière par faire ce que tu dis le getAdresse().getVille(), parce que la structure objet est "perdue" : du JavaScript dans le flux de la jsp, c'est juste du texte. Il n'y a que dans le navigateur, donc côté client, que ça va devenir quelque chose d'éventuellement exécutable/interprétable dans le navigateur. Les EL c'est juste pour patcher un flux texte. Tu peux utiliser les EL pour patcher des valeurs de propriétés, des valeurs de propriétés de propriétés (tant que c'est implémenté de manière à ce que l'EL soit interprétable), mais c'est juste du texte, qui perd tout sens "structuré" et "exécutable en Java", lors que le flux texte est transporté vers le client en http. Dans la partie JavaScript de ce texte, il doit y avoir du JavaScript interprétable par le navigateur (puisque c'est lui qui va le faire) et l'accès à ce qu'il y a dans la mémoire du serveur ne peut s'y faire que par requête.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Partager