【问题标题】:Convert var javascript to java variable将var javascript转换为java变量
【发布时间】:2013-12-15 23:43:37
【问题描述】:

我使用的是jsp格式的eclipse 3.2 tomcat server 5.5。我在将 var 变量(javascript)转换为 int 变量(java)时遇到问题。这样做的正确方法是什么?

在html body中,我用这个方法抛出:

    String qwerty = Integer.toString(f);
    String asdf = Integer.toString(d);
            System.out.println("CONVERTED VALUE : "+qwerty+" "+asdf);
    %>
    <input type="hidden" id="balance" name="balance" value="<%=qwerty%>" />
    <input type="hidden" id="loop" name="loop" value="<%=asdf%>" />
    <%
    System.out.println("VALUES : "+balance+" "+loop);

在 html 头(脚本)中:

            <script>
            function myfunction()
            {
            var looping = document.getElementById("loop").value;
        var balancing = document.getElementById("balance").value;

        <%
            String loop="<%=document.writeln(looping)%>";
        String balance="<%=document.writeln(balancing)%>";

        int balance = Integer.parseInt(balancing);
        int loop = Integer.parseInt(looping);

            %>
            ..........................cont

如何将这个 var 转换为字符串?

【问题讨论】:

  • JSP 页面中的服务器端 Java 代码首先运行并生成扩展模板,然后将其发送到客户端并在那里执行。因此,您似乎无法直接从 JavaScript 调用 Java。您要么需要重新考虑逻辑,要么在新请求中将客户端数据发送到服务器。
  • 这个帖子想成为这类问题的规范解释:programmers.stackexchange.com/questions/171203/…
  • 那么我可以在jsp的同一页面中使用request.getParameter吗?

标签: java javascript eclipse jsp tomcat


【解决方案1】:

您需要了解 Java 在服务器端运行,而 JavaScript 在客户端运行。它们在不同的上下文和层中运行,并且很可能是物理机器(欢呼,本地主机)。在您的问题的上下文中,java 代码用于生成 HTML/JS(在服务器上),用于与通常在浏览器(在客户端)内的最终用户进行通信。所以他们不会很好地/直接地“看到”对方。

一旦您了解了这些事实并记住了 HTTP 的基础知识,服务器与客户端的通信就会通过请求-响应模型来处理。在这种情况下,您可以在视图文件中“打印”数据以将信息发送到客户端,如var passedFromJava = ${bean.data};,以便它最终出现在响应正文中。相反,当客户端触发请求(使用例如input 元素提交表单)时,提交表单的所有输入最终都作为请求参数,并且可以在 Java 中作为String fromHtmlPage = request.getParameter("inputName"); 获得。您当然可以从 JavaScript 端添加此类参数,例如 &lt;input type="hidden"&gt; 元素,将它们作为数据添加到 AJAX 请求等。但请了解直接 JavaScript 对 Java 是不可见的:通信方式是 HTTP。

顺便说一句,现在不欢迎使用 scriptlet (%)。更多信息请查阅经典:How to avoid Java code in JSP files?

【讨论】:

    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    相关资源
    最近更新 更多