在没有路线上混淆playframework错误

时间:2012-02-15 03:51:35

标签: playframework

我有错误

No route able to invoke action premonitionx.Edits.postRelease with arguments {release=kjkjkj} was found

在这行代码上

#{form @premonitionx.Edits.postRelease(projectName), id:'editrelease'}

在渲染我的editRelease.html文件时,该文件用于ADDS和EDITS。

我的路线档案是

GET  /{projectName}/{releaseName}/edit  premonitionx.Edits.editRelease
GET  /{projectName}/addrelease          premonitionx.Edits.editRelease
POST /{projectName}/saverelease     premonitionx.Edits.postRelease

我的GET和POST方法

public static void editRelease(String company, String projectName, String releaseName) {
    ReleaseDbo release = new ReleaseDbo();
    if(releaseName != null) {
        release = ReleaseDbo.findRelease(JPA.em(), company, projectName, releaseName);
    }

    render(company, projectName, release);
}

public static void postRelease(@Valid ReleaseDbo release, String projectName, String lastUrl) { 
          //do the post stuff I want
    }

请注意,变量发布的唯一引用是在render方法调用中,我在代码中的其他位置执行此操作,因此我的代码在这里究竟发生了什么。到目前为止,游戏一直非常可靠,我的大多数问题都是用户错误,所以这次我的错误是什么,因为这个问题似乎远离真正的问题?

最后注意:将传递给渲染器的释放变量重命名为xxxx会将错误更改为xxxx = kjkjkj但是发布变量甚至不是String类型! grrrrr,这一定是1.2.4中的一个错误是我能想到的。 projectName变量是一个String,应该是该值。

感谢, 迪安

1 个答案:

答案 0 :(得分:3)

好吧,这真的是真的,我可以说真的很蠢。事实证明,这个问题可以通过重新排序方法列表中的参数来解决....

更改帖子方法
public static void postRelease(@Valid ReleaseDbo release, String projectName, String lastUrl) { 

public static void postRelease(String projectName, @Valid ReleaseDbo release, String lastUrl) { 

然后它再次起作用..... ICK .....那里没有足够的魔法。