14

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

我在messages包中controllers有一个带有类的子包i18n.java

我的routes文件如下所示:

GET     \    controllers.messages.i18n.index()
POST    \    controllers.messages.i18n.process()

我现在有一个包含以下操作的表单:

@helper.form(action = routes.messages.i18n.process())

但这给了我一个错误:

value messages is not a member of object controllers.routes

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

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

4

3 回答 3

19

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

此外,Java 编码约定规定类必须以大写字母开头。

于 2013-06-09T15:53:27.357 回答
11

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

routes.conf 看起来像:

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

在代码中看起来像:

controllers.admin.routes.StuffController.show()
于 2014-09-15T02:51:08.870 回答
3

对于 Play 2.4.6 Java 用户:

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

要在您的模板 ( *.scala.html) 中使用它,您可以这样做@com.stackoverflow.play.routes.Application.logout(例如<a href="@com.stackoverflow.play.routes.Application.logout()">, <form action="@com.stackoverflow.play.routes.Application.logout()" method="post">)。

阅读此链接的底部:https ://playframework.com/documentation/2.4.x/JavaRouting

于 2016-02-07T09:09:34.877 回答