【问题标题】:type "" is not a member of package controllers play framework类型“”不是包控制器播放框架的成员
【发布时间】:2019-12-17 18:33:41
【问题描述】:

我正在关注 Play Framework 的教程,但我遇到了一个问题,我写了这个对象:

package controllers

import play.api.mvc._

object Tickets extends Controller {
  def ticketsAvailable = Action { request =>
    val availableTickets = 1000
    Ok(availableTickets.toString)
  }
}

然后添加路线:

GET     /tickets/available/         controllers.Tickets.ticketsAvailable

但是当我编译并收到此错误时:

type Tickets 不是包控制器的成员

谁能帮我举个例子来说明我如何解决这个问题?

谢谢

【问题讨论】:

    标签: playframework


    【解决方案1】:

    将您的object 更改为class,即。

    class Tickets extends Controller {
    

    当然Tickets.scala 应该封装在app/controllers 下。

    【讨论】:

    • 嗨 Nio。您的回答有几个月的时间,但它也解决了我的问题。你能解释一下为什么将对象修改为类可以解决这个特殊问题吗?
    • ohe,因为版本 2.4 Play(默认情况下)采用开箱即用的依赖注入(Google Guice)来从框架中删除全局状态。 Read this in the docs - 它解释得更清楚了。
    【解决方案2】:

    我将我的代码从 Object ApplictionController extends Controller{} 更改为 Class ApplicationController extends Controller{} 并且它有效。

    【讨论】:

      【解决方案3】:

      在控制器使用的类中引入编译错误后,我遇到了同样的问题。

      具体来说,我没有完成一个方法调用。我没有写object.someMethod(),而是写了object.

      因此,type is not a member... 错误可能意味着您的一个或多个控制器无法实例化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多