2013-02-10 20 views
1


我使用的是玩框架2.1,並且出現了一個奇怪的錯誤。
我想在子文件夾移動控制器,ES:
如何移動子文件夾中的控制器

controllers->
- Application.java
- pages ->
- - - -Index.java
- - - -Second.java


和路線我有:

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

錯誤:

value main is not a member of object controllers.pages.Index


這是一個錯誤?至於尼古拉



解決發現 錯誤:無法訪問父類的方法,必須重寫他們:

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

您的Index.java文件是否在controllers.pages包中? – Adil 2013-02-10 22:27:55

+0

是的,似乎是擴展另一個控制器的錯誤https://groups.google.com/forum/?fromgroups=#!topic/play-framework/QpAy2anCs_g – user2054758 2013-02-10 23:22:20

回答

1

我不認爲它是固定在決賽中發揮2.1 (或者我錯過了一些東西) - 在子類中不是'重寫'的方法的路由仍然返回錯誤。

AFAIK在Java中真正重寫靜態方法是不可能的。

無論如何......請記住,所有設計的動作都是靜態方法,因此您不需要使用到達Child.methodOfParent()的路線,而只需使用Parent.methodOfParent(),但您顯示的解決方案應該被認爲是overloading而不是overriding

另一方面,從我的角度來看,我寧願建議不要使用這種模式。 Play的動作應該是獨立於其他動作的獨立方法,如果你需要在兩個動作中使用(幾乎)相同的功能,那麼使用其他靜態方法(而不是動作)會更好。在新的utils包裹處理身體的兩個行動與params。恕我直言,這將是更安全的方法,正如你所看到的 - 還有一些「未知」。

+0

這就是爲什麼我需要擴展控制器:https://github.com/jstar88/LibreTitan/blob/master/conf/routes。希望你能欣賞這種風格 – user2054758 2013-02-11 12:42:43

相關問題