web-dev-qa-db-fra.com

Attribuer une variable JavaScript à une variable Java dans JSP

Ello là-bas,

J'essaie d'attribuer la valeur d'une variable javascript à une variable Java. Mais je ne sais pas comment faire cela? Disons par exemple que j'ai ceci:

<html>
<head>
   <script type="text/javascript">
       function return variable(){
          var a = "hello";
          return a;
       }
   </script>
</head>
<body>

<%
   //The Java code
   String b = //how do I get that javascript variable here?
%>

</body>
</html>
19
Tiwaz89

Le script Java joue sur un navigateur où le code Java est une chose côté serveur, vous ne pouvez donc pas le faire simplement.

Ce que vous pouvez faire est de soumettre la variable calculée de javascript au serveur par soumission de formulaire, ou en utilisant un paramètre d'URL ou en utilisant des appels AJAX.

HTML

<input type="hidden" id="hiddenField"/>

assurez-vous que ce champ est sous <form> 

Javascript

document.getElementById("hiddenField").value=yourCalculatedVariable;

sur le serveur, vous obtiendrez ceci dans le cadre de request

20
Jigar Joshi

Vous devez lire quelque chose sur le cycle de vie d'un JSP. Essayez ceci: http://en.wikipedia.org/wiki/File:JSPLife.png

JavaScript s'exécute sur le client, mais pour changer de jsp, vous devez accéder au serveur. Cela peut être fait via Ajax (http://en.wikipedia.org/wiki/Ajax_%28programming%29).

Voici quelques liens concernant Ajax: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

1
Dragos

La réponse est que vous ne pouvez pas. Java (dans votre cas, JSP) est un langage de script côté serveur, ce qui signifie qu'il est compilé et exécuté avant tout code javascript. Vous pouvez affecter des variables javascript à des variables JSP, mais pas l’inverse. Si possible, vous pouvez afficher la variable dans une chaîne QueryString ou la transmettre via un formulaire (via un champ masqué), la poster et extraire la variable via JSP de cette façon. Mais cela nécessiterait de resoumettre la page.

J'espère que cela t'aides.

1
AlphaMale

JavaScript est activé côté client et JSP côté serveur. Donc je peux dire que c'est impossible.

1
Jwalin Shah

Je pense qu’il n’ya aucun moyen de le faire, sauf si vous transmettez la valeur de la variable JavaScript à l’URL, mais c’est une solution de contournement moche.

0
fonini

vous ne pouvez pas le faire .. car jsp est compilé et converti en serveur HTML alors que javascript est exécuté du côté client . vous pouvez définir la valeur sur un élément HTML masqué et l'envoyer à servlet à la demande au cas où vous souhaiteriez l'utiliser Pour de plus amples

0
dku.rajkumar

Comme JavaScript est côté client et JSP est côté serveur.

Donc, Javascript ne s'exécute pas tant qu'il n'arrive pas dans le navigateur, Mais Java s'exécute sur le serveur .. Donc, Java ne connaît pas la valeur de la variable JavaScript.

Cependant, vous affectez une valeur de variable Java à une variable JavaScript.

0
gprathour