如何在子文件夹中移动控制器

时间:2013-02-10 21:49:06

标签: playframework-2.1

我正在使用Play框架2.1,我得到了一个奇怪的错误 我正试图在子文件夹中移动控制器,es:

  

controllers->
   - Application.java
   - 页面 - >
   - - - -Index.java
   - - - -Second.java


在我有的路线:

  

GET / controllers.pages.Index.main();

错误:

  

value main不是object controllers.pages.Index

的成员


这是一个错误?关于尼古拉



解决 发现错误:您无法访问父类的方法,您必须覆盖它们:

public static Result main(String page, String method)
{
    return ParentClass.main(page,method);
}

1 个答案:

答案 0 :(得分:1)

我认为它在最终的Play 2.1中没有修复(或者我错过了一些东西) - 在子类中没有“覆盖”的方法的路由仍然会返回错误。

Java中的AFAIK实际上无法覆盖静态方法。

无论如何......请记住,按设计设计的所有操作都是静态方法,因此,您只需使用Child.methodOfParent()即可使用Parent.methodOfParent()的路径,您显示为解决方案应该被视为overloading而不是overriding

另一方面,从我的观点来看,我宁愿建议不要使用这种模式。 Play的动作应该是独立于其他动作的独立方法,如果你需要在两个动作中使用(几乎)相同的功能,那么使用其他静态方法(不是动作)就更好了。在新的utils包中使用params处理两个操作的主体。恕我直言,这将是更安全的方法,你可以看到 - 仍然有一些'未知'。