Javascript 如何在play框架中的@route中指定方法参数?
我在conf/routes中有以下定义:Javascript 如何在play框架中的@route中指定方法参数?,javascript,playframework,routes,Javascript,Playframework,Routes,我在conf/routes中有以下定义: GET /amethod/*path controllers.Application.amethod(path: String) 以及Application.java中的以下内容: public static WebSocket<String> amethod(String path){ .... } 但它仅适用于path=null: new WS("@routes.Application.ameth
GET /amethod/*path controllers.Application.amethod(path: String)
以及Application.java中的以下内容:
public static WebSocket<String> amethod(String path){
....
}
但它仅适用于path=null:
new WS("@routes.Application.amethod(null).webSocketURL(request)")
生成要在JavaScript代码中使用的URL的最佳方法(也是推荐的方法)是使用。不幸的是,没有Java版本的文档,至少在2.4.x文档中没有(这是)
这是你必须做的
JavaScript路由端点
在某些控制器中声明一个操作,以公开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代码中使用的URL的最佳方法(也是推荐的方法)是使用。不幸的是,没有Java版本的文档,至少在2.4.x文档中没有(这是)
这是你必须做的
JavaScript路由端点
在某些控制器中声明一个操作,以公开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>
感谢您的回答-两个问题:1)控制器中的操作无法识别aMethod()或anotherMethod(),即使我在Application.java中有它们?2) routes.js应该是视图下的文件“routes.scala.js”?目前我在conf?1)下只有一个“routes”文件,您的意思是,运行时出现了编译器错误,还是您的IDE无法识别它们?有时,IDE在识别生成的源代码时会遇到问题。2) 你不需要在任何地方创建routes.js文件,Play会帮你做到这一点。我添加了另一个示例来说明这一点。1)这是一个编译错误“错误:找不到符号”。2) Play会创建一个routes/potations.js文件吗?注意:我必须将控制器中的方法设置为静态,以避免出现错误“value javascripts不是object controllers.Application的成员”。1)您在哪里看到此错误?2) 对。3) 将我的示例更改为也使用
static
关键字1) 在命令提示符中,在浏览器中刷新页面后,我使用“activator run”启动服务器。浏览器中也会显示错误。感谢您的回答-两个问题:1)控制器中的操作无法识别aMethod()或anotherMethod(),即使我在Application.java中有它们?2) routes.js应该是视图下的文件“routes.scala.js”?目前我在conf?1)下只有一个“routes”文件,您的意思是,运行时出现了编译器错误,还是您的IDE无法识别它们?有时,IDE在识别生成的源代码时会遇到问题。2) 你不需要在任何地方创建routes.js文件,Play会帮你做到这一点。我添加了另一个示例来说明这一点。1)这是一个编译错误“错误:找不到符号”。2) Play会创建一个routes/potations.js文件吗?注意:我必须将控制器中的方法设置为静态,以避免出现错误“value javascripts不是object controllers.Application的成员”。1)您在哪里看到此错误?2) 对。3) 将我的示例更改为也使用static
关键字1) 在命令提示符中,在浏览器中刷新页面后,我使用“activator run”启动服务器。浏览器中也会显示该错误。