0

調べてみると、似たような質問や答えがあったとしても、どうしたらいいのかわからないようです。問題は、JavaScriptを含むjspファイルを実行すると、設定されたフォームonClick="..."ではなくページを開始したときに実行されることです。また、推奨されていないスクリプトレットを使用していることは知っていますが、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(); %>">

mbeans(javaベース)アプリをWebベースで実行する必要があり、それが私を困惑させているので、助けていただければ幸いです。

4

1 に答える 1

1

これが発生する理由は、JSPが解析されるときに、埋め込まれたJavaコードが実行され、結果が最終的なHTMLに置き換えられるためです。ここで必要なのは、サーバーにAjaxコールバックを実行して、サーバーが目的のメソッドを呼び出すようにすることです。それはあなたが私が恐れているものより少し複雑になるでしょう。jQueryとそのAjaxAPIを確認することをお勧めします。

于 2012-12-06T13:09:10.160 に答える