-1

ボタンが JSP からクリックされたときに Java クラスを呼び出そうとしています。私のJSPファイル内には、次のものがあります。

<%
  Object name = session.getAttribute("name");
  Object ext = session.getAttribute("ext");
  DBOps ops = new DBOps();
  ReturnGetDisplayInfo GDI = ops.getDisplayInfo(ext); 
%>

DBOps に特定のフィールドを削除するメソッドがあるため、情報を表示するテーブルにボタンを追加し、ボタンがクリックされたときに削除メソッドを呼び出そうとしています。だから私は次のことを試みましたが、うまくいきませんでした。

<td><button onclick=<% ops.delete(ext); %>>Delete</button></td>

javascript を使用するいくつかの例を見ていましたが、Java クラスを呼び出すのではなく、スクリプトで defiend 関数を使用しています。

前もって感謝します

4

2 に答える 2

0

それを直接行うことはできません。サーバーへの往復が必要です。

そのための最良のオプションはAJAXです:

  • 特定のURLが呼び出されたときに削除リクエストを実行するサーブレットを作成します
  • jQuery (またはネイティブ XmlHttpRequest) を使用してその URL を呼び出す

( DWR - AJAX を使用して実装されるダイレクト Web リモーティングもオプションです)

于 2013-06-21T14:30:18.343 に答える
0

それがあなたを助けることができるなら、javascriptとajaxでの私のコードの一例:

私のjspにはonClick "changeTimeZone(org)"があります

Javascript:

function changeTimeZone(org)
{
    //Prepare a new ajaxRequest.
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function()
    {
        //state 4 is response ready.
        //Status 200 is page found.
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

        //fill the timezone field with the reponse of my servlet.
        document.getElementById('timeZoneText').value = xmlhttp.responseText;

    }
  };

  //send an ajax request.
  //Go to my servlet
  xmlhttp.open('GET','mainServlet?command=ajax.ChangeTimeZone&Org=' + org.value, true);
  xmlhttp.send();

}
于 2013-06-21T14:35:38.250 に答える