我正在使用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中使用过子包,它运行得很好,有人能在我的配置中发现任何错误吗?
路径文件不会抱怨它找不到控制器。
答案 0 :(得分:19)
路线应为controllers.messages.routes.i18n.process()
。您可以检查target/scala-2.10/src_managed
目录以发现生成的文件。
有关信息,Java编码约定表明类必须以大写字母开头。
答案 1 :(得分:11)
仅供参考,在2.2中它略有不同。
routes.conf看起来像:
GET /admin/stuff controllers.admin.StuffController.show()
代码中的看起来像:
controllers.admin.routes.StuffController.show()
答案 2 :(得分: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