如何在JSP的java代码中使用Javascript变量作为参数

How can i use Javascript variable as argument in java code in JSP?

本文关键字:Javascript 变量 参数 JSP 代码 java      更新时间:2023-09-26

我想将代码标题和价格作为参数发送到 book 对象,但给出了非法的开始表达式错误。

 function addrecord() {
    code = document.getElementById('code').value;
            title = document.getElementById('title').value;
            price = parseFloat(document.getElementById('price').value);
    <%   Book book = new Book(%> code <% ,%> title <% , %> price <% );
   bookdb.addRecord(book);   
             %>
            document.getElementById("code").value = "";
            document.getElementById("title").value = "";
            document.getElementById("price").value = "";
    }

你误解了java和javascript的运行位置。使用 <% 和 %> 就像将值发送到服务器一样,而服务器没有。 这些标记仅在 JSP 内部用于启动 Java 代码片段。这仅在您生成页面时有效。一旦您的 html 进入您的浏览器,这些标签将不会执行任何操作。

突出显示重要的关键字,这不是为了讽刺

当您使用浏览器请求 jsp 页面时,浏览器会打开与服务器的网络连接。将这 2 个(浏览器、服务器)想象成生活在 2 个完全不同的地方。

然后,服务器运行 java 代码。当它执行时,它会生成一个 html 页面。此 html 页面通过网络连接发送回客户端(您的浏览器

您的浏览器将收到这个完全形成的 html 页面,并使用它来创建其视图。在此页面上,您可以运行javascript,但javascript只能在客户端(浏览器)上运行

要再次将任何变量返回服务器,您需要:获取或发布表单(使用表单 tage 中的提交,或使用 JavaScript post 请求,如表单提交),执行 ajax 调用 (http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtml) 或让用户单击链接(href="...您的页面")。

最简单的方法是执行以下操作:

<form method="POST" action="your/page/url">
    <input type="hidden" name="someName" value="someValue" />
    <input type="submit" />
</form>

阅读一些链接并确保您记住,您的浏览器和服务器是分开的,因此在浏览器中运行 JavaScript 不会到达服务器。

请参阅此处: 在 JSP 中将 JavaScript 变量分配给 Java 变量

如上所述,这实际上是不可能的,因为 JSP 在服务器上执行,而 javascript 稍后在浏览器中执行。