Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过javascript函数调用DAO方法?_Javascript_Java_Jquery_Database_Jsp - Fatal编程技术网

如何通过javascript函数调用DAO方法?

如何通过javascript函数调用DAO方法?,javascript,java,jquery,database,jsp,Javascript,Java,Jquery,Database,Jsp,我正在编写jquery代码,并通过它在jsp页面上调用JavaScript函数 这是jquery函数 $(function () { $('#defaultCountdown').countdown({until: $.countdown('//SomeTime'),onExpiry: liftOff}); }); liftOff是一个javascript方法,在指定的时间到期后调用 这是JavaScript函数 <script> function liftOff()

我正在编写jquery代码,并通过它在jsp页面上调用JavaScript函数

这是jquery函数

$(function () {

    $('#defaultCountdown').countdown({until: $.countdown('//SomeTime'),onExpiry: liftOff});

});
liftOff是一个javascript方法,在指定的时间到期后调用

这是JavaScript函数

<script>
function liftOff() {

    alert("Before Delete");
    &lt;% DAO_Object.deleteRecord(ID);%&gt;
    alert("After Delete");

}

</script>

函数liftOff(){
警报(“删除前”);
%DAO_对象。删除记录(ID);%
警报(“删除后”);
}
现在的问题是,
行在函数调用之前被执行,数据库中的记录被删除。函数调用后,警报语句正确执行


我是否错误地调用了
deleteRecord
方法?

您将服务器端JSP逻辑与客户端JavaScript逻辑混为一谈

当servlet处理请求时,
之间的所有内容都在servlet上运行,因此当您在浏览器中获得响应时,记录已经被删除。如果您使用或类似工具查看浏览器中接收到的HTML/JS,您将看到这些
alert(…)
调用之间没有任何内容

这里的解决方案是在服务器端处理
deleteRecord()
,并在
liftOff()方法中调用它。所以
liftOff()
看起来像这样:

// assuming `id` is a string here
function liftOff(id) {

  alert("Before Delete");

  // You'll have to setup this endpoint to run 
  // your `DAO_Object.deleteRecord(ID);` code 
  // in your JSP code.

  $.get("/delete/my/record/" + id, {
    error: function(e){
      // some kind of error occurred in making the request
    },
    success: function(resp){
      // `resp` is the response from the server
      alert("After Delete");
    }
  });
}

您正在混合服务器端JSP逻辑和客户端JavaScript逻辑

当servlet处理请求时,
之间的所有内容都在servlet上运行,因此当您在浏览器中获得响应时,记录已经被删除。如果您使用或类似工具查看浏览器中接收到的HTML/JS,您将看到这些
alert(…)
调用之间没有任何内容

这里的解决方案是在服务器端处理
deleteRecord()
,并在
liftOff()方法中调用它。所以
liftOff()
看起来像这样:

// assuming `id` is a string here
function liftOff(id) {

  alert("Before Delete");

  // You'll have to setup this endpoint to run 
  // your `DAO_Object.deleteRecord(ID);` code 
  // in your JSP code.

  $.get("/delete/my/record/" + id, {
    error: function(e){
      // some kind of error occurred in making the request
    },
    success: function(resp){
      // `resp` is the response from the server
      alert("After Delete");
    }
  });
}

您将客户端代码和服务器端代码混为一谈。请参阅@lxe OP正在尝试运行依赖于浏览器事件的JSP代码。这更类似于本文:您将客户端代码和服务器端代码混为一谈。请参阅@lxe OP正在尝试运行依赖于浏览器事件的JSP代码。它更类似于这篇文章:那么在调用函数之后调用DAO方法的解决方案应该是什么呢?@NikhilPatil HTTP request
DELETE/path/to/resource/{id}
@chrylis谢谢。我试着解释一下,你到底是如何做到这一点的。希望这会有所帮助。我强烈建议您使用正确的HTTP动词替换path hack。那么,在调用函数之后调用DAO方法的解决方案应该是什么呢???@NikhilPatil HTTP request
DELETE/path/to/resource/{id}
@chrylis谢谢。我试着解释一下,你到底是如何做到这一点的。希望这能有所帮助。我强烈建议您用正确的HTTP动词替换path hack。