【问题标题】:Implicit messages Scala Play framework隐式消息 Scala Play 框架
【发布时间】:2015-10-19 17:29:48
【问题描述】:

我正在尝试遵循这个:

ToDoList Tutorial

了解 Play 框架的基本教程。我在这一行收到一条错误消息:

@inputText(taskForm("label"))

错误信息是这样的:

could not find implicit value for parameter messages: play.api.i18n.Messages

我在我的控制器中渲染这个视图,如下所示:

def tasks = Action {
   Ok(views.html.index(Task.all(), taskForm))
}

我已经用谷歌搜索了错误消息,似乎隐含的消息是用于国际化字符串,但我还没有找到关于如何实际修复此错误的帖子,我也很困惑,因为这是一个官方教程,并且代码无法编译。

【问题讨论】:

标签: scala playframework


【解决方案1】:

尝试在Action 中使用implicit request,并在模板顶部放置implicit lang

def tasks = Action { implicit request =>
  Ok(views.html.index(Task.all(), taskForm))
}

并且在索引模板的顶部:

@(tasks: List[Task], taskForm: Form[String])(implicit lang: Lang)

request 为模板提供Lang

【讨论】:

  • 当我尝试浏览本教程时,这不会影响错误消息。我有同样的错误 - 当然教程是玩 2.0 的,现在当你安装你得到 2.4
【解决方案2】:

您可以在操作中传递隐式请求,在模板中传递隐式 play.api.i18n.Messages。

@(tasks: List[Task], taskForm: Form[String])(implicit messages: play.api.i18n.Messages)

【讨论】:

    【解决方案3】:

    我知道这个问题很老,但我在尝试使用 Play 2.6.x 完成本教程时遇到了同样的问题,并按照https://stackoverflow.com/a/30800825/1033203 的说明解决了这个问题,除了不使用:

    (implicit messages: Messages)
    

    在我看来,我需要:

    (implicit messagesProvider: MessagesProvider)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 2019-04-11
      • 2016-08-17
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多