找不到适用于 Play(2.6.0) 框架的操作



我正在使用Intellij Idea + Play 2.6.0 + com.google.code.play2-maven-plugin来设置开发环境。

  1. 我的控制器类HomeController放置在以下结构中(app是源根目录)

    app controllers HomeController

代码为:

package controllers
import javax.inject._
import play.api.mvc._
@Singleton
class HomeController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {
def index = Action {
Ok("Hello,World")
}
def count = Action {
Ok("10")
}
}
  1. routers文件是: GET / controllers.HomeController.index GET /count controllers.HomeController.count

当我运行 maven 目标:play2:run时,服务器启动,当我 访问http://localhost:9000/ or http://localhost:9000/count,每个都说Action Not Found for request '/'Action Not Found for request '/count'

您的控制器类名称是HomeController2,但您的路由器指向控制器。主控制器

选择解决方案:)

  • 将路由更改为HomeController2.count 和 HomeController2.index(在本例中,控制器源代码正常)
  • 或者将类移动到控制器包(将包控制器添加到源代码的顶部)并将其重命名为 HomeController(在这种情况下,路由是正确的)

找出问题所在,pom.xml应该使用<packaging>play2</packaging>

HomeController的例子是从 https://github.com/play2-maven-plugin/play2-maven-test-projects/tree/master/play26/scala/starter-example 中学到的

感谢@balage帮助解决问题。

最新更新