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>
答案 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变量。