【问题标题】:Assign JavaScript variable to Java Variable in JSP在 JSP 中将 JavaScript 变量分配给 Java 变量
【发布时间】:2012-01-06 06:57:03
【问题描述】:

你好,

我正在尝试将 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>

【问题讨论】:

标签: java javascript jsp variables


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    HTML

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

    确保该字段位于&lt;form&gt;

    Javascript

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

    在服务器上,您可以将其作为request 的一部分获得

    【讨论】:

    • 嗯,我明白了.. 因为总而言之,我正在尝试做的事情。在 JSP 中有一个 HTML 表单,并通过 onClick 事件触发 javascript 方法,然后返回一个变量。然后该变量可以与其余的表单输入值一起发送...所以没有办法做到这一点?
    • 您可以在一些隐藏字段中设置它,然后您可以通过表单提交发送它。
    • 类似这样的东西: ?
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 啊,太好了,我可以做到,它仍然可以解决我的问题。所以我将像这样设置隐藏输入类型中的值: ?
      • 是的,您是对的,您必须在方法本身中设置此元素的值并将该元素保留在表单中,以便在提交表单时将其添加到 url 中。
      【解决方案5】:

      因为 JavaScript 是客户端,而 JSP 是服务器端。

      所以 Javascript 在到达浏览器之前不会执行, 但是 Java 在服务器上执行。 所以,Java 不知道 JavaScript 变量的值。

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

      【讨论】:

        【解决方案6】:

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

        希望这会有所帮助。

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2014-06-04
            • 1970-01-01
            • 2023-03-26
            • 1970-01-01
            • 2010-12-28
            • 1970-01-01
            • 2014-04-23
            • 1970-01-01
            相关资源
            最近更新 更多