Passage d'un int[] Java en paramètre d'une fonction Javascript [Résolu]

Messages postés
2
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
31 juillet 2009
- - Dernière réponse : stuntrepresent
Messages postés
2
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
31 juillet 2009
- 31 juil. 2009 à 17:20
Bonjour,

je tiens tout d'abord à saluer l'esprit d'entraide qui règne sur ce forum que je consulte très souvent mais sur lequel je n'avais encore jamais osé poser de question.

Il se peut que ce soit trivial mais je suis dessus depuis un bon moment et je n'ai rien trouvé de similaire sur le forum.

J'ai hésité entre les sections Java et Javascript pour poser ma question, la voici :

J'ai un champ texte dans une JSP dans lequel je dois pouvoir entrer un entier.
j'utilise la propriété onKeyPress de mon champ texte pour appeler une fonction Javascript qui fait cette vérification. Jusque là tout va bien.

Je voudrais maintenant limiter les valeurs possibles pour ce champ texte à partir d'un tableau d'entiers représentant les valeurs possibles.

Ces valeurs sont en fait stockées en base de données, je les extraits de la base dans le controller de ma page JSP et je passe un tableau d'entiers en attribut dans ma requête. Ainsi, depuis la page JSP, je peux récupéré ce tableau et le passer en paramètre de ma fonction JSP.

Avec Firebug, je peux voir ce qui se passe pendant l'exécution du Javascript, en fait, la fonction Javascript reçoit l'adresse du tableau : [I@4ab168. En fait, je me doutais qu'il y avait peu de chance qu'un objet Java soit directement utilisable en Javascript mais je pensais trouver un moyen de conversion relativement simple mais malheureusement, je sèche.

Si certains ont des idées, merci d'avance
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82
3
Merci
Salut,

Il n'y a aucune interraction possible entre une variable java et une variable javascript : ce sont deux langages bien différents, donc l'un est exécuté sur le serveur (java) et l'autre au niveau client (javascript).

Une solution possible, c'est de récupèrer la valeur de ta variable et la passer dans une variable javascript dans ta page jsp, par exemple :
function javaScript() {
  var variable = <%tableauJava[0]%>; // récupèration de la première valeur de ton tableau...
}


Une autre solution : passer par AJAX pour envoyer une requête vers le serveur, qui te renverra sous la forme d'un flux xml (parsable en javascript donc) ou directement en JSON (directement interpretable en javascript donc) pour récupèrer les valeurs de ton tableau en question.

Je te conseille la seconde approche qui est bien plus standard...
______________________________________
DarK Sidious

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 194 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
2
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
31 juillet 2009
0
Merci
Merci Mr Palpatine ;)

Entre temps j'avais utilisé une solution un peu moins propre en construisant un String à partir de mon tableau d'entiers (les entiers concaténés en fait). J'ai placé cette chaîne de caractère dans un champ caché de ma JSP, je pouvais ainsi venir lire la valeur depuis le Javascript.

Cette solution ne me convenait pas vraiment car pas très "propre" donc je vais me pencher sur ta seconde solution et la mettre en œuvre si ça n'implique pas de trop grosses contraintes.

Merci beaucoup
Commenter la réponse de stuntrepresent