[英]How do I specify method parameter in @route in play framework?
我在conf / routes中有以下定义:
GET /amethod/*path controllers.Application.amethod(path: String)
以及Application.java中的以下内容:
public static WebSocket<String> amethod(String path){
....
}
但是如何在JavaScript中使用例如path =“ someValue”指定URL?
我试过例如:
new WS("@routes.Application.amethod(\"someValue\").webSocketURL(request)")
new WS("@routes.Application.amethod('someValue').webSocketURL(request)")
但它仅适用于path = null:
new WS("@routes.Application.amethod(null).webSocketURL(request)")
生成要在JavaScript代码中使用的URL的最佳方法(也是推荐的方法)是使用JavaScript Routing 。 不幸的是,没有Java版本的文档,至少在2.4.x文档中没有(这是针对2.5版本解决的 )。
这是您要做的。
在某些控制器中声明一个操作,以公开您的Javascript路线:
public static Result javascripts() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
// Routes
controllers.routes.javascript.Application.aMethod(),
controllers.routes.javascript.Application.anotherMethod()
)
);
}
然后,转到上述操作:
GET /assets/javascripts/routes.js controllers.Application.javascripts()
或您想要的任何其他路径,例如:
GET /assets/potatoes.js controllers.Application.javascripts()
并将此JavaScript添加到您的页面:
<script type="text/javascript" src="@routes.Application.javascripts()"></script>
就是这样。 现在,让我们看看如何使用JavaScript路由。
这样做的好处是,您既可以在视图中也可以在其他.js
文件中使用JavaScript路由器。 为此,请使用您的Javascript代码执行以下操作:
var webSocketUrl = jsRoutes.controllers.Application.aMethod("/some/parameter").webSocketURL()
var myWs = new WS(webSocketUrl)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.