2013-06-21 31 views
-2

我試圖在從JSP中點擊按鈕時調用Java類。我的JSP文件中,我有以下:從JSP中調用Java類onclick

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

我在DBOps的方法,將刪除某一個領域,所以我增加了一個按鈕來顯示信息,現在我試圖調用刪除方法TEH表當按鈕被點擊時。所以我試着做下面的事情,但沒有奏效。

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

我一直在尋找利用JavaScript的一些例子,但它使用defiend功能,在格蘭腳本,而不是調用Java類。

在此先感謝

回答

0

你不能直接做到這一點。您需要往返於服務器。

的,最好的選擇是AJAX

  • 作出這樣的處理執行時一定URL被調用
  • 使用jQuery(或原生的XmlHttpRequest)刪除請求來調用URL一個servlet

DWR - direct web remoting也是一種選擇,這是使用AJAX來實現)

+1

我在尋找DWR來幫助做到這一點,請問您可以發表一個簡單的例子。我沒有任何servlet,我不知道如何在我的情況下添加一個。我所擁有的僅僅是JSP文件,我正在調用Java類,並使用它們很好地使用<% %>標記。它只是按鈕點擊,我正在努力 – laitha0

0

一個E我的代碼xemple在JavaScript和Ajax,如果它可以幫助你:

在我的jsp我有一個的onClick 「changeTimeZone(組織)」

的Javascript:

功能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(); 

    } 
+0

你在你的JavaScript中調用XMLHttpRequest是好的,但這不適用於調用一個不同的類腳本甚至不會看到我的類 – laitha0