我正在使用play框架做一个项目。
然后点击一些链接,例如“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 +“)”
等。但不能这样做:((( 请在这个问题上开车送我......
答案 0 :(得分:7)
如果写得正确则应该有效。但实际上它是从数据库中删除实体的一个坏例子。那是因为您尝试使用的GET请求。使用GET进行删除不仅合乎逻辑,而且在某些情况下也可能对您的应用程序造成危险。但是,如果您以这种方式使用它,请检查以下内容:
您的路线文件应包含类似的内容:
GET /car/remove/{id} car.removMyOwremovegivencar()
还要确保将id param传递给您尝试调用js代码的视图。我没有看到任何其他原因导致此代码无效。
但请考虑更好的方法:
将此操作POST或DELETE并对其进行AJAX调用:
路线:
DELETE /car/{id} car.removMyOwremovegivencar()
和你的JS(使用jQuery):
function removeMyCar(id)
{
$.ajax({
type: "DELETE",
url: "@{car.removMyOwremovegivencar()}",
data: {
id:id
}
});
}
答案 1 :(得分:2)
简短的回答是你不能直接从javascript调用java方法/函数。但是,您可以向将调用您的函数的服务器端资源发出ajax请求。 ajax请求的结果将是您选择的任何格式的函数结果。
答案 2 :(得分:1)
这篇文章可以帮助您:javaScriptRouter
在此示例中,您可以使用此代码
获取网址 var url = jsRoutes.controllers.Application.plus(num1,num2).url;