我是 Scala 中 Play 的初学者,当我想打开我的应用程序时收到此错误:
class ElevesController needs to be abstract, since method messagesApi in trait I18nSupport of type => play.api.i18n.MessagesApi is not defined
EleveController.scala
package controllers
import javax.inject.Inject
import play.api.Logger
import play.api.data.Form
import play.api.data.Forms._
import play.api.i18n.{Messages, I18nSupport, MessagesApi}
import play.api.mvc.{Action, Controller}
import views.html
import scala.concurrent.Future
import models.Eleve
class ElevesController @Inject() extends Controller with I18nSupport {
def viewEleves = Action {implicit request =>
Ok(html.viewseleves(Eleve.findAll))
}
}
不知道怎么解决
编辑: 我修复了它,我只需要在这一行中添加:“(val messagesApi: MessagesApi)”:
class ElevesController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport {
最佳答案
这应该有效。只需更改您的操作等即可。
https://playframework.com/documentation/2.4.0-RC2/api/scala/index.html#play.api.i18n.I18nSupport
package controllers
import javax.inject._
import play.api._
import javax.inject.Inject
import play.api.Logger
import play.api.data.Form
import play.api.data.Forms._
import play.api.mvc._
import views.html
import scala.concurrent.Future
import play.api.i18n._
@Inject()
class ElevesController (val messagesApi: MessagesApi) extends Controller with I18nSupport {
val action = Action { implicit request =>
Ok("Ok") // Uses the client???s preferred language
}
}
关于scala - Play Scala : class needs to be abstract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396552/