在JavaScript中将JavaScript变量分配给Java变量

时间:2011-11-25 11:20:33

标签: java javascript jsp variables

Ello那里,

我正在尝试将javascript变量的值赋给java变量。但我不知道怎么做?比方说,我有这个:

<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 个答案:

答案 0 :(得分:20)

Java脚本在浏览器上播放,其中java代码是服务器端的东西,所以你不能简单地这样做。

您可以做的是通过表单提交,使用URL参数或使用AJAX调用将javascript中的计算变量提交给服务器,然后您可以在服务器上将其提供

<强> HTML

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

确保此字段位于<form>

<强>的Javascript

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

在服务器上,您可以将其作为request

的一部分

答案 1 :(得分:1)

您需要阅读有关JSP生命周期的内容。试试这个:http://en.wikipedia.org/wiki/File:JSPLife.png

JavaScript在客户端上运行,但是为了更改jsp,您需要访问服务器。这可以通过Ajax完成(http://en.wikipedia.org/wiki/Ajax_%28programming%29)。

以下是一些与Ajax相关的链接:http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

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

答案 2 :(得分:1)

答案是你不能。 Java(在您的情况下是JSP)是一种服务器端脚本语言,这意味着它在所有javascript代码之前编译和执行。您可以将javascript变量分配给JSP变量,但不能相反。如果可能,您可以让变量出现在QueryString中,或者通过表单(通过隐藏字段)传递它,发布它并通过JSP以这种方式提取变量。但这需要重新提交页面。

希望这有帮助。

答案 3 :(得分:1)

JavaScript在客户端被激发,JSP在服务器端被激活。所以我可以说这是不可能的。

答案 4 :(得分:0)

我认为没有办法做到这一点,除非你传递了URL上的JavaScript var的值,但这是一个丑陋的解决方法。

答案 5 :(得分:0)

你不能这样做..因为jsp被编译并转换为html服务器端,而javascript在客户端执行。 您可以将值设置为隐藏的html元素,并在请求中发送给servlet,以防您想要进一步使用

答案 6 :(得分:0)

由于JavaScript是客户端,而JSP是服务器端。

所以Javascript在进入浏览器之前不会执行, 但Java在服务器上执行。 因此,Java不知道JavaScript变量的值。

但是,您将Java变量的值赋给JavaScript变量。