JSP在按钮单击时运行方法

时间:2012-12-06 13:05:25

标签: java javascript jsp netbeans scriplets

我抬头,甚至有类似的问题和答案,我似乎无法理解如何。 问题是,当我运行一个带有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中的其他方法是我在<%! and %>

之间的同一jsp页面上包含的方法

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

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

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

任何帮助都会受到赞赏,因为我需要做一个mbeans(这是基于java的)基于网络的应用程序,它正在驱使我疯狂。

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是,在解析JSP时,运行嵌入式Java代码并将结果替换为最终的HTML。你想要的是对服务器进行Ajax调用,让它调用你想要的方法。它会比你害怕的东西复杂一点。我建议您查看jQuery and its Ajax API