2

我正在使用游戏框架做一个项目。

单击某些链接(例如“show”)后,例如正在调用 car.show(55) 并在 car.show 中执行一些数据库查询。然后列表操作正在完成。

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

我是说,

当所有汽车都列在 html 文件中时。我会用那辆车的 id 调用一个 js 函数。

例如:移除我的车

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

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

我试过了

function removeMyCar(id)
{
window.location="@{car.removMyOwremovegivencar(id)}";
}

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

等等,但做不到:(((请在这个问题上驱动我......

4

3 回答 3

7

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

您的路由文件应包含以下内容:

GET    /car/remove/{id}         car.removMyOwremovegivencar()

还要确保将 id 参数传递给您尝试调用 js 代码的视图。我没有看到任何其他原因导致此代码无法正常工作。

但考虑更好的方法:

这是使此操作 POST 或 DELETE 并对其进行 AJAX 调用:

路线:

DELETE   /car/{id}         car.removMyOwremovegivencar()

和你的 JS(使用 jQuery):

function removeMyCar(id)
{
   $.ajax({
    type: "DELETE",
    url: "@{car.removMyOwremovegivencar()}",
    data: {
      id:id
    }
   });
}
于 2012-05-16T06:19:47.010 回答
2

简短的回答是您不能直接从 javascript 调用 java 方法/函数。但是,您可以向将调用您的函数的服务器端资源发出 ajax 请求。ajax 请求的结果将是您选择的任何格式的函数的结果。

于 2012-05-16T03:22:28.630 回答
1

这篇文章可以帮助你:javaScriptRouter

在此示例中,您可以使用此代码获取 url

var url = jsRoutes.controllers.Application.plus(num1,num2).url;

于 2013-04-11T19:24:21.883 回答