在我的Play 2应用程序中,在控制器的方法中,我添加了一个新的标题,如:
def index(id: Option[Long]) = SecuredAction { implicit request =>
....
Ok(views.html.platform.alerts.index(request.user, currentUserAlerts,
TweetsDAO.loadTweets(alertId, None, 15)))
.withHeaders("isAdmin" -> userSettings.get.isAdmin.toString)
}
我想访问alerts.index scala视图中的标题,如:
@request.headers.get("isAdmin")
在我的视图中将请求定义为隐式:
(implicit request: RequestHeader)
但没有显示任何内容。
如果我在scala视图中打印所有标题,则isAdmin不存在。
有人知道我做错了吗?
答案 0 :(得分:2)
Ok.withHeaders(...)
会向返回给用户的Result
添加标头,而不是RequestHeader
,因此不会传递给视图。
在尝试将RequestHeader
等标记传递给视图时,我没有看到尝试修改isAdmin
的重点。为什么不在视图中添加一个显式isAdmin: Boolean
参数并传递它?这样您就必须明确确定用户是否是管理员,而不是依赖于添加到请求中的标头,这很容易被忽视。