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

IT技术 java javascript jsp variables
2021-03-15 01:23:09

埃洛那里,

我正在尝试将 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>
6个回答

Java 脚本在浏览器上播放,其中 Java 代码是服务器端的东西,因此您不能简单地执行此操作。

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

HTML

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

确保该字段位于 <form>

Javascript

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

在服务器上,你会得到它的一部分 request

您可以在一些隐藏字段中设置它,然后您可以通过表单提交发送它。
2021-05-07 01:23:09
嗯,我明白了.. 因为总而言之,我正在尝试做的事情。在 JSP 中有一个 HTML 表单,并通过 onClick 事件触发 javascript 方法,然后返回一个变量。然后该变量可以与表单输入值的其余部分一起发送......所以没有办法做到这一点吗?
2021-05-12 01:23:09
像这样: <input type="hidden" value="returnVariable()" name="javaScriptVariable" /> ?
2021-05-18 01:23:09

您需要阅读有关 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

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

希望这可以帮助。

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

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