我正在学习其中一个play框架教程,但每当我尝试使用反向路由时,都会遇到编译错误。首先,
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Projects.add(),
controllers.routes.javascript.Projects.delete(),
controllers.routes.javascript.Projects.rename(),
controllers.routes.javascript.Projects.addGroup()
)
);
}
其中,intelliJ中显示的错误是‘无法解析方法javascriptRouter(java.lang.String,?)’
而且在单元测试中也是如此:
@Test
public void notAuthenticated() {
Result result = callAction(
controllers.routes.ref.Application.index(),
fakeRequest()
);
assertEquals(303, status(result));
assertEquals("/login", header("Location", result));
}
其中它无法解析索引方法。
这是intelliJ的问题,还是我在play中遗漏了什么?
对于第一部分,下面是我的routes文件中的条目:
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
我的控制器Projects已经获得了定义的方法。
发布于 2013-10-29 10:21:40
来自@Markus Kittig提供的链接。很好的临时解决方案。https://github.com/playframework/playframework/issues/1784#issuecomment-26345523
简介:添加target/scala-XXX作为托管源,并删除File->Project Structure->Modules->Sources中的应用程序控制器和视图源代码标志。然后重新编译。
适用于IntelliJ旗舰版12.1.{4|6}。使用命令行界面创建了播放应用程序,并使用play idea
生成了一个项目文件。使用Play 2.2.0。
发布于 2016-03-28 01:08:02
对于使用Play 2.4.x或更高版本的人来说,Play似乎不再为src_managed
等人的javascript生成反向路由文件。
相反,您需要将scala-2.xx/routes/main
目录包含为Sources
。
发布于 2014-06-09 20:52:33
这个问题是一年前提出的,但是为了回答其他程序员将来的查询,这个问题很容易解决,只需添加一个"play.Routes“路径,如下所示
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
play.Routes.javascriptRouter("jsRoutes",
// Routes for Projects
controllers.routes.javascript.Projects.add(),
controllers.routes.javascript.Projects.delete(),
controllers.routes.javascript.Projects.rename(),
controllers.routes.javascript.Projects.addGroup()
)
);
}
确保您对类具有正确的导入:
import play.mvc.*;
import play.data.*;
https://stackoverflow.com/questions/16676311
复制相似问题