Affecter la variable JavaScript à la Variable Java dans JSP
Ello y
j'essaie d'attribuer la valeur d'une variable javascript à une variable java. Mais je n'ai pas la moindre idée de comment faire cela? Disons, par exemple, 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>
7 réponses
Java script joue sur le navigateur où le code java est Côté Serveur chose donc vous ne pouvez pas simplement faire cela.
ce que vous pouvez faire est de soumettre la variable calculée à partir de javascript au serveur par form-submission, ou en utilisant le paramètre URL ou en utilisant des appels AJAX et puis vous pouvez le rendre disponible sur le serveur
HTML
<input type="hidden" id="hiddenField"/>
assurez-vous que ces champs se trouvent sous <form>
Javascript
document.getElementById("hiddenField").value=yourCalculatedVariable;
sur le serveur vous obtenez ce que une partie de request
vous devez lire quelque chose sur le cycle de vie d'un JSP. Essayez ceci:http://en.wikipedia.org/wiki/File:JSPLife.png
JavaScript fonctionne sur le client, mais pour changer le jsp, vous avez besoin d'accéder au serveur. Cela peut se faire par L'Intermédiaire D'Ajax(http://en.wikipedia.org/wiki/Ajax_%28programming%29).
voici quelques liens relatifs à Ajax: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
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 le code javascript. Vous pouvez affecter les variables javascript aux variables JSP mais pas l'inverse. Si possible, vous pouvez faire apparaître la variable dans un QueryString ou la passer via un formulaire (à travers un champ caché), la poster et extraire la variable à travers JSP de cette façon. Mais il faudrait pour cela refaire la page.
espérons que ceci aider.
JavaScript est activé côté client et JSP est activé côté serveur. Donc, je peux dire que c'est impossible.
je pense qu'il n'y a aucun moyen de faire cela, à moins que vous ne passiez la valeur de la var JavaScript sur L'URL, mais c'est une mauvaise solution.
tu ne peux pas faire.. parce que jsp est compilé et converti en Côté Serveur html alors que javascript est exécuté du côté client. vous pouvez définir la valeur à un élément html caché et envoyer à servlet dans request juste au cas où vous voulez utiliser pour plus de
comme JavaScript est côté client et JSP est Côté Serveur.
donc Javascript ne s'exécute pas jusqu'à ce qu'il arrive au navigateur, Mais Java s'exécute sur le serveur. Ainsi, Java ne connaît pas la valeur de la variable JavaScript.
cependant vous assignez la valeur de la variable Java à la variable JavaScript.