2014-07-15 61 views
-1

我是新来的Scala /网站设计/ mvc/play/internet(no)。 使用MVC。需要传递调试信息,调试信息是请求的一个子集。 信息流:控制器调用每个视图,视图生成数据,然后传递到主要作为一个整体显示。 Main也显示调试信息。 当前在Controller中提取调试信息,并将其传递给每个视图,然后依次传递给显示调试信息的main。 这似乎不正确,控制器是否应该将这些信息传递给每个视图,以便将它们传递给main?有没有一种方法可以直接获取它。播放,将请求传递给视图

(但愿我已经把这个问题简单明了,快乐的人进一步解释,如果它是不明确的。)

+0

一些示例代码(即使它不起作用)将有助于解释你想要做什么。 –

回答

1

您不能直接传递请求头为主。如果您在主模板上声明它,则必须为每个子模板指定它。然后,您可以通过在您的操作和视图中隐式定义它来传递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> 

希望有所帮助。

+0

谢谢,这有帮助。我按照您的建议制作了代码流,并查看隐式请求。 – 0fnt