如何在 Play Framework 2.3 中从我的表单反向路由到一个动作

How to reverse route to an action from my form in Play Framework 2.3

大家好,

我是 Play 框架的新手,正在尝试开始构建应用程序。在 app/controllers 文件夹下,我创建了子包,所以我有类似 app/controllers/products/ProductController.class 的东西。

在我的 routes.conf 文件中,我添加了这样的示例路线

GET /createproduct controllers.products.ProductController.listAllProducts() POST /createproduct controllers.products.ProductController.createProductDetail()

我可以转到 url http://localhost:9000/createproduct 并查看我创建的示例视图。

我现在的问题是我想在视图中添加一个表单,当我尝试使用表单助手方法将 POST 数据添加到上面的 POST URL我的新观点是这样的

@helper.form(action = routes.products.ProductController.createProductDetail()) {

我得到的错误是

value products is not a member of object controllers.routes

我在网上看到的所有示例仅使用 route.Application 示例,这不符合我的问题。

所以我的问题是如何使用表单助手从视图中反向路由到此操作或路由

有效的语法是:

[full-package-name].routes.[controller].[method]

所以你的情况应该是

 controllers.products.routes.ProductController.createProductDetail()

controllers.routes 是隐式导入的,因此要在默认包中与控制器一起使用,您可以将其缩短为:

routes.Controller.action()