【发布时间】:2016-11-08 23:10:59
【问题描述】:
我有以下代码
import play.api.i18n.{MessagesApi, Messages, I18nSupport}
import play.api.libs.json.Json
case class HttpMessage(key: String, message: String)
object HttpMessage {
implicit val jsonFormat = Json.format[HttpMessage]
def apply(key: String): HttpMessage = {
HttpMessage(key, Messages(key))
}
}
编译时抛出
[error] could not find implicit value for parameter messages: play.api.i18n.Messages
[error] HttpMessage(key, messages(key))
[error] ^
我做了一些研究,似乎找不到MessagesAPI 的implicit 值。似乎它必须像在控制器中一样注入,但我不知道如何注入,因为我在这里面临object 和case class。不接受@Inject 注释。
我该如何解决这个问题?
【问题讨论】:
-
您可以标记您的对象@Singleton 并将其注入您需要的地方。
-
或者尝试导入play.api.i18n.Messages.Implicits._
-
我已经尝试过导入。不工作。
-
@insan-e 如何注入
@Singleton? -
您还需要在 Messagesimplicits 的范围内进行隐式应用,所以
import play.api.Play.current import play.api.i18n.Messages.Implicits._,它应该可以工作,但 Play.current 方法已被弃用。
标签: scala playframework