我是scala / web desing / mvc / play / internet(no)的新手。 使用MVC。需要传递调试信息,调试信息是请求的子集。 信息流:COntroller调用每个视图,视图生成数据,然后传递给main作为整体显示。 Main还显示调试信息。 当前在Controller中提取调试信息,并将其传递给每个视图,然后传递给显示调试信息的main。 这似乎不对,如果控制器将这些信息传递给每个视图,他们只是将其转移到main?有没有办法让主要直接获得它。
(希望我能将这个问题保持简洁明了,如果不清楚则更乐意解释更多......)
答案 0 :(得分:1)
您无法将请求标头直接传递给main。如果在主模板上声明它,则必须为每个子模板指定它。然后,您可以通过在您的操作和视图中隐式定义它来传递RequestHeader。
您的行动必须如下:
def example = Action { implicit request =>
Ok(views.html.example("Example"))
}
您的子模板必须如下所示:
@(title: String)(implicit request: RequestHeader)
@main(title) {
<p>My request path is: @request.path</p>
}
您的主模板必须如下:
@(title: String)(content: Html)(implicit request: RequestHeader)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@title</title>
</head>
<body>@html</body>
</html>
希望有所帮助。