-1

当从 JSP 中单击按钮时,我试图调用 Java 类。在我的 JSP 文件中,我有以下内容:

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

我在 DBOps 中有一个方法可以删除某个字段,所以我在表格中添加了一个按钮来显示信息,现在我试图在单击按钮时调用 delete 方法。所以我尝试执行以下操作,但没有成功。

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

我正在查看一些使用 javascript 的示例,但它在脚本中使用 defiend 函数而不是调用 Java 类。

提前致谢

4

2 回答 2

0

你不能直接这样做。您需要往返服务器。

最好的选择是AJAX

  • 当调用某个 url 时,创建一个处理执行删除请求的 servlet
  • 使用jQuery(或本机 XmlHttpRequest)调用该 url

DWR - 直接 Web 远程处理也是一种选择,使用 AJAX 实现)

于 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 回答