簡體   English   中英

scala play2.5如何將全局消息傳遞給模板

[英]scala play2.5 how to pass global messages to template

我有一個play2.5 scala項目,例如,如果發生錯誤,我想從控制器傳遞全局消息。 我如何不使用表單全局消息來實現這一點。

例如,在handleRegisterError方法中,我想拋出一條全局錯誤消息,該消息將顯示在頁面頂部。

最好的方法是什么?

我正在使用旋轉模板

 def registerUser = Action.async { implicit request =>

    RegisterForm.form.bindFromRequest.fold(
      formWithErrors => {
        Future.successful(BadRequest(views.html.register(formWithErrors)))
      },
      formData => {
        registerUserService.registerUser(formData).map{ insertedId =>
          Ok(views.html.index(""))
        }
        .recover {
          case cause => handleRegisterError(cause)
        }
      })


  }

  def handleRegisterError(cause: Throwable)(implicit req: RequestHeader) : Result = {         
    cause match {
      case dae: DataAccessException =>
        //add an error message here
        BadRequest(views.html.register(RegisterForm.form))
      case _ =>
        BadRequest(views.html.register(RegisterForm.form))
    }
  }

您應該能夠將Redirect與附加到Flash作用域的消息一起使用

Redirect(views.html.register(RegisterForm.form)).flashing("error" -> "Oops, you've got an error")

RequestHeader添加為模板參數,並在定義后呈現錯誤消息。

@(form: Form[RegisterForm])(implicit request: RequestHeader)

@request.flash.get("error").map { message =>
    <div>@message</div>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM