使用JavaScript函数内的JavaScript变量调用Java函数

问题描述:

我需要帮助。我需要在Java类中调用Java函数“getLocCountByWhId()”;这个Java函数在for循环中的JavaScript中被调用。我需要将JavaScript变量作为参数传递给此函数“getLocCountByWhId()”。我一直在努力工作一周,阅读大量网站以获得一些指导,但我一直无法解决问题。预先感谢您的帮助。代码如下列出:使用JavaScript函数内的JavaScript变量调用Java函数

<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); %> 

你所要做的是不可能的,(对不起!)反映了一个基本的误解如何服务器端代码,例如JSP(或ASP,PHP等)作品。

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

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

更多阅读(你在RoseIndia网站阅读我不会把太多的信心):

http://www.ibm.com/developerworks/java/tutorials/j-introjsp/

http://www.oracle.com/technetwork/articles/javase/servlets-jsp-140445.html

http://java.sun.com/developer/onlineTraining/JSPIntro/

+0

从 “AndrewHac”:谢谢你为你的答案。有没有其他的方法可以用来调用我的Java类“getStoreCount(JS1,JS2,JS3)”,JS1,2,3是JavaScript?我需要在这个“getStoreCount()”Java函数中调用SQL SELECT语句。我在互联网上读到,你可以使用request.getParameter()将JS var传递给JSP var,我可以使用它吗?提前再次感谢您。 – AndrewHac

+0

如果在浏览器中运行的代码需要从Web服务器获取数据,有两种常用的方法:(1)在表单中提交客户端数据,让服务器处理它并返回一个新页面给客户端(从用户的角度来看,这意味着页面刷新),在这种情况下,您可能会将JS变量中的值存储在隐藏的表单字段中,以便在JSP中使用'request.getParameter()'来获取值; (2)使用Ajax,在这种情况下,您的JS可以提交请求而不导航到新页面 - 这里不适合对Ajax的解释。阅读上面的JSP教程。 – nnnnnn