Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在play框架中的@route中指定方法参数?_Javascript_Playframework_Routes - Fatal编程技术网

Javascript 如何在play框架中的@route中指定方法参数?

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

我在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.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”启动服务器。浏览器中也会显示该错误。