播放,传递请求到视图

时间:2014-07-15 14:19:04

标签: playframework playframework-2.0

我是scala / web desing / mvc / play / internet(no)的新手。 使用MVC。需要传递调试信息,调试信息是请求的子集。 信息流:COntroller调用每个视图,视图生成数据,然后传递给main作为整体显示。 Main还显示调试信息。 当前在Controller中提取调试信息,并将其传递给每个视图,然后传递给显示调试信息的main。 这似乎不对,如果控制器将这些信息传递给每个视图,他们只是将其转移到main?有没有办法让主要直接获得它。

(希望我能将这个问题保持简洁明了,如果不清楚则更乐意解释更多......)

1 个答案:

答案 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>

希望有所帮助。