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

标签 javascript java jquery database jsp

我正在编写 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>

现在问题是 <% DAO_Object.deleteRecord(ID);%> 行在函数调用之前执行,并且数据库中的记录被删除。函数调用后警报语句正确执行。

我调用deleteRecord吗?方法错误?

最佳答案

您正在将服务器端 JSP 逻辑与客户端 JavaScript 逻辑混合在一起。

<% %>之间的一切当处理请求时,它在 servlet 上运行,因此当您在浏览器中收到响应时,该记录已被删除。如果您使用 Chrome DevTools 查看在浏览器中收到的 HTML/JS或类似的工具,您会发现 alert(...) 之间没有任何内容来电。

您的解决方案是 setup a route处理 deleteRecord()在服务器端,并将其命名为 via AJAX在你的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");
    }
  });
}

关于javascript - 如何通过javascript函数调用DAO方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226665/

相关文章:

javascript - for 循环的 xhr 响应不起作用

javascript - jquery animate 不工作,div 不移动

java - Spring Boot 如何提供 spring-data-jpa v1.10.3.RELEASE

javascript - 所有项目都会触发事件,而不仅仅是当前项目

php - 简化我的 Jquery xajax 之类的功能

javascript - IE : jQuery click listener fires on parent of disabled button

javascript - 如何禁用表的子元素中的输入

java - 如何触发内部关闭请求?

java - 将 NumberPicker 值添加到数据库

javascript - 上一个脚本完成后运行 jQuery 代码