Java 控制器中的路由和子包

Java 控制器中的路由和子包,java,routes,playframework-2.1,Java,Routes,Playframework 2.1,我正在使用Play 2.1,我遇到了一些奇怪的问题 我在controllers包中有一个子包messages,其中包含一个类i18n.java 我的路由文件如下所示: GET \ controllers.messages.i18n.index() POST \ controllers.messages.i18n.process() 我现在有一个具有以下操作的表单: @helper.form(action = routes.messages.i18n.process()

我正在使用Play 2.1,我遇到了一些奇怪的问题

我在
controllers
包中有一个子包
messages
,其中包含一个类
i18n.java

我的
路由
文件如下所示:

GET     \    controllers.messages.i18n.index()
POST    \    controllers.messages.i18n.process()
我现在有一个具有以下操作的表单:

@helper.form(action = routes.messages.i18n.process())
但这给了我一个错误:

值消息不是对象控制器的成员。路由

我以前在Play 2.0.4中使用过子包,它工作得很好,有人能在我的配置中发现任何错误吗


路由文件不会抱怨找不到控制器。

路由应该是
controllers.messages.routes.i18n.process()
。您可以检查
target/scala-2.10/src_managed
目录以发现生成的文件


作为参考,Java编码惯例规定类必须以大写字母开头。

仅供参考,在2.2中略有不同

routes.conf看起来像:

GET  /admin/stuff  controllers.admin.StuffController.show()
controllers.admin.routes.StuffController.show()
在代码中,如下所示:

GET  /admin/stuff  controllers.admin.StuffController.show()
controllers.admin.routes.StuffController.show()

对于Play 2.4.6 Java用户:

假设您的控制器(应用程序)和操作(注销)是
com.stackoverflow.play.Application.logout()


要在模板(
*.scala.html
)中使用它,您需要
@com.stackoverflow.play.routes.Application.logout
(例如,

类名是复制/粘贴/编辑失败,但这是可行的!同样感谢
src\u管理的
提示