[英]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.