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

stuntrepresent 2 Messages postés mercredi 7 février 2007Date d'inscription 31 juillet 2009 Dernière intervention - 31 juil. 2009 à 15:53 - Dernière réponse : stuntrepresent 2 Messages postés mercredi 7 février 2007Date d'inscription 31 juillet 2009 Dernière intervention
- 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

Répondre au sujet
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 31 juil. 2009 à 17:04
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
stuntrepresent 2 Messages postés mercredi 7 février 2007Date d'inscription 31 juillet 2009 Dernière intervention - 31 juil. 2009 à 17:20
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.