在JavaScript函数中使用JavaScript变量调用Java函数

在JavaScript函数中使用JavaScript变量调用Java函数,javascript,Javascript,我需要帮助。我需要在Java类中调用Java函数“getLocCountByWhId()”;在for循环中的JavaScript中调用此Java函数。我需要将一个JavaScript变量作为参数传入这个Java函数“getLocCountByWhId()”。我已经挣扎了一个星期,阅读了许多网站,以获得一些指导方针,但我还没有能够解决这个问题。提前感谢您的帮助。代码如下所示: <script language="JavaScript"> <!-- function onCreat

我需要帮助。我需要在Java类中调用Java函数“getLocCountByWhId()”;在for循环中的JavaScript中调用此Java函数。我需要将一个JavaScript变量作为参数传入这个Java函数“getLocCountByWhId()”。我已经挣扎了一个星期,阅读了许多网站,以获得一些指导方针,但我还没有能够解决这个问题。提前感谢您的帮助。代码如下所示:

<script language="JavaScript">
<!--
function onCreatePO()
{
    <%long jspAllocId = alloc.getId();%>;
    var recItemId = ""; // Local variable for item id.
    var recWhId = ""; // Local variable for warehouse id.                           

    for (var i=0, j=document.what_if_summary.elements.length; i<j; i++)
    {      
       var recStr = document.what_if_summary.elements[i].value; 
       var splitStr = new Array(); 
       splitStr = recStr.split('^');
       recItemId = splitStr[1]; // Get the field value for Item_ID.
       recWhId = splitStr[2]; // Get the field value for Warehouse_ID.

// Get a database connection with global 'conn' object and retrieve store count.
       <%AfsGetVDSCountByWarehouseBean.setConnection(conn);%>; 

// The below assignment from JavaScript variable to JSP variable do not work 
// because of a second JavaScript tag. How can I get around this ?

//<% String jspItemId = "<script>document.writeln(recItemId)</script>"; %>
//<% String jspWhId = "<script>document.writeln(recWhId)</script>"; %>

   currentStoreCount = <%= AfsGetVDSCountByWarehouseBean.getLocCountByWhId(jspAllocId, jspItemId, jspWhId)%>;
   }
}

//-->
</script>

// I get this example of assigning Javascript to JSP variable but I got double tag problem.
<script>
var v="Roseindia";
</script>
<% String st="<script>document.writeln(v)</script>";
out.println("value="+st); %>

//我得到了这个将Javascript分配给JSP变量的示例,但我遇到了双标记问题。
var v=“印度玫瑰”;

您试图做的是不可能的,而且(很抱歉!)反映了对服务器端代码(如JSP(或ASP、PHP等)如何工作的基本误解

JSP页面基本上是在web服务器上运行的Java servlet,它动态生成web页面并将其返回给浏览器。生成的网页可能包含HTML、CSS、JavaScript等,但对于Java代码来说,所有这些都只是文本。Java/JSP代码无法理解JavaScript或与JavaScript交互,因为JavaScript不在web服务器上运行,它只是更多的文本,作为响应的一部分发送回浏览器

当浏览器得到响应时,它将显示网页并执行任何JavaScript

进一步阅读(我不会太相信你在RoseIndia网站上读到的内容):


来自“Andrewac”:谢谢您的回答。有没有其他方法可以用来调用我的Java类“getStoreCount(JS1,JS2,JS3)”,其中JS1,2,3是JavaScript?。我需要在这个“getStoreCount()”Java函数中调用SQL SELECT语句。我在互联网上读到,您可以使用request.getParameter()将JS变量传递给JSP变量,我可以使用这个吗?。再次感谢您。如果您在浏览器中运行的代码需要从web服务器获取数据,则有两种常见的方法:(1)以表单形式提交客户端数据,让服务器进行处理并将新页面返回给客户端(从用户的视图来看,这意味着页面刷新),在这种情况下,您可能会将JS变量中的值存储在隐藏的表单字段中以供提交,并在JSP中使用
request.getParameter()
来获取值;(2) 使用Ajax,在这种情况下,您的JS可以提交请求而无需导航到新页面——这里无法解释Ajax。阅读上面的JSP教程。