首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法解析IntelliJ中的反向路由方法

无法解析IntelliJ中的反向路由方法
EN

Stack Overflow用户
提问于 2013-05-22 01:46:14
回答 5查看 13.5K关注 0票数 15

我正在学习其中一个play框架教程,但每当我尝试使用反向路由时,都会遇到编译错误。首先,

代码语言:javascript
复制
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,?)’

而且在单元测试中也是如此:

代码语言:javascript
复制
@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文件中的条目:

代码语言:javascript
复制
GET     /assets/javascripts/routes  controllers.Application.javascriptRoutes()

我的控制器Projects已经获得了定义的方法。

EN

回答 5

Stack Overflow用户

发布于 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。

票数 6
EN

Stack Overflow用户

发布于 2016-03-28 01:08:02

对于使用Play 2.4.x或更高版本的人来说,Play似乎不再为src_managed等人的javascript生成反向路由文件。

相反,您需要将scala-2.xx/routes/main目录包含为Sources

票数 4
EN

Stack Overflow用户

发布于 2014-06-09 20:52:33

这个问题是一年前提出的,但是为了回答其他程序员将来的查询,这个问题很容易解决,只需添加一个"play.Routes“路径,如下所示

代码语言:javascript
复制
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()
            )
    );

}

确保您对类具有正确的导入:

代码语言:javascript
复制
import play.mvc.*;
import play.data.*;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16676311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档