在play框架中从javascript调用java函数

use*_*499 2 javascript jquery json playframework

我正在使用play框架做一个项目.

点击一些链接例如"show"后,例如car.show(55)被调用,而在car.show中正在执行一些数据库查询.然后列表操作正在进行中.

我要做的是,从java脚本文件中调用removegivencar函数.

我的意思是,

当所有汽车都列在html文件中时.我将使用该车的id调用js函数.

例如:删除我的车

我想在js而不是html中调用car.removegivencar函数

因为我有汽车的身份证.我应该做@ {car.removMyOwremovegivencar(mycar.id)}操作......

我试过了

function removeMyCar(id)
{
window.location="@{car.removMyOwremovegivencar(id)}";
}
Run Code Online (Sandbox Code Playgroud)

或window.location ="@ {car.removMyOwremovegivencar("+ id +")"

等但不能这样做:(((请在这个问题上开车送我......

was*_*tim 7

如果写得正确则应该有效.但实际上它是从数据库中删除实体的一个坏例子.那是因为您尝试使用的GET请求.使用GET进行删除不仅合乎逻辑,而且在某些情况下也可能对您的应用程序造成危险.但如果您以这种方式使用它,请检查以下内容:

您的路由文件应包含类似的内容:

GET    /car/remove/{id}         car.removMyOwremovegivencar()
Run Code Online (Sandbox Code Playgroud)

还要确保将id param传递给您尝试调用js代码的视图.我没有看到任何其他原因导致此代码无效.

但考虑更好的方式:

它是使这个动作POST或DELETE并在其上进行AJAX调用:

路线:

DELETE   /car/{id}         car.removMyOwremovegivencar()
Run Code Online (Sandbox Code Playgroud)

和你的JS(使用jQuery):

function removeMyCar(id)
{
   $.ajax({
    type: "DELETE",
    url: "@{car.removMyOwremovegivencar()}",
    data: {
      id:id
    }
   });
}
Run Code Online (Sandbox Code Playgroud)