加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 当我注入MessageApi并使用I18nSupport的特性时如何传递

发布时间:2020-12-16 09:10:57 所属栏目:安全 来源:网络整理
导读:我的控制器操作使用一个自定义操作,如下所示: class ActionWithContext @Inject()(....) extends ActionBuilder[ContextAwareRequest] { def invokeBlock[A](request: Request[A],block: (ContextAwareRequest[A]) = Future[Result]) = { ... }}class Conte
我的控制器操作使用一个自定义操作,如下所示:

class ActionWithContext @Inject()(....)
  extends ActionBuilder[ContextAwareRequest] {

  def invokeBlock[A](request: Request[A],block: (ContextAwareRequest[A]) =>                   Future[Result]) = {
  ... 
  }

}

class ContextAwareRequest[A](val context: MyContext,request: Request[A]) extends WrappedRequest[A](request)

我的控制器看起来像:

import play.api.i18n.{MessagesApi,I18nSupport,Messages}
import play.api.i18n.Messages.Implicits._
class WebsiteController @Inject() (val messagesApi: MessagesApi,actionWithContext: ActionWithContext,..)
      extends BaseController with I18nSupport {


    def edit(websiteId: Int)  =  actionWithContext { request =>
        val model = ..
        Ok(views.html.backend.websites.edit(model)(request.context))
      }

    }

视图页面如下所示:

@(form: Form[controllers.WebsiteForm])(implicit context: MyContext,m: Messages) {


}

我收到错误:

not enough arguments for method apply: (implicit context: com.example.services.components.MyContext,implicit m: play.api.i18n.Messages)play.twirl.api.HtmlFormat.Appendable in class edit.
[error] Unspecified value parameter m.
[error]     Ok(views.html.websites.edit(model)(request.context))
[error]

我尝试传递messageApi如下:

Ok(views.html.websites.edit(model)(request.context,messageApi))

但是我在Messages和MessageApi之间有一个类型不匹配错误.

我该怎么办?

我甚至没有在我的意见中使用消息,但我使用的表单助手,我猜使用封面下的消息…

解决方法

看起来你正在试图传递一个隐式参数,而另一个则是隐式的.你必须明确地传递他们:

Ok(views.html.websites.edit(model)(request.context,implicitly[Messages]))

或者两者都是隐含的:

implicit val context = request.context
Ok(views.html.websites.edit(model))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读