0

我抬头看了看,即使有类似的问题和答案,我似乎也无法理解。问题是,当我运行一个包含 JavaScript 的 jsp 文件时,它会在我启动页面时运行,而不是在设置的表单上运行 onClick="..."; 另外,我知道我正在使用不鼓励使用的 scriptlet,但我对 jsp 完全陌生,所以我不知道如何为它创建类。我正在使用 Netbeans。

<script LANGUAGE="JavaScript">
function connect(){
<% ConnectToServer(); %>
};

function startApp(){
<% InvokeStartApplicationInstance(); %>   
<% InvokeStartApplication(); %>  
};

function stopApp(){
<% InvokeShutdownApplication(); %> 
};
</script>

<FORM name="myform">
    <INPUT NAME="connectbtn" TYPE="button" VALUE="Connect" onClick="connect()">
     <INPUT NAME="startbtn" TYPE="button" VALUE="Start" onClick="startApp()">
      <INPUT NAME="stopbtn" TYPE="button" VALUE="Stop" onClick="stopApp()">
</FORM>

ConnectToServer();和JavaScript中的其他方法是我在同一个jsp页面中包含的方法<%! and %>

问题是这些方法有效,但 JavaScript 无论如何都在页面加载上运行。因此,例如,如果最后一个<% InvokeShutdownApplication(); %> 在 JavaScript 中,它会执行这个,因此无法启动。我需要它来工作onClick

我不知道如何直接用 Java 调用方法。下面的方法不起作用:

<INPUT NAME="connectbtn" TYPE="button" VALUE="Connect" onClick="<% ConnectToServer(); %>">

任何帮助都将不胜感激,因为我需要做一个基于 web 的 mbeans(它是基于 java 的)应用程序,它让我发疯。

4

1 回答 1

1

发生这种情况的原因是,在解析 JSP 时,运行嵌入的 Java 代码,并将结果替换为最终的 HTML。您在这里要做的是对服务器进行 Ajax 回调,以使其调用您想要的方法。恐怕它会比你所拥有的要复杂一些。我建议查看jQuery 及其 Ajax API

于 2012-12-06T13:09:10.160 回答