关于内容变量的声明

时间:2014-05-29 10:39:51

标签: scala playframework-2.0 scala-template

我是新作品。我一直在阅读提供playframework的教程和示例。 我可以成功地渲染playframework样本提供的helloworld应用程序。 我对main.scala.html的渲染部分几乎没有疑问。#

这是我从 samples / helloworld

获得的默认程序
@(title: String)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.6.4.min.js")" type="text/javascript"></script>
    </head>
    <body>

        <header>
            <a href="@routes.Application.index">@title</a>
        </header>

        <section>
            @content
        </section>

    </body>
</html>

这里当我在section标签下注释@content时,我无法看到这些字段。 现在我的问题是,@ content是映射到表单字段的?

我为我的布局创建了另一个结构,并将@content添加到内容部分。但它不符合这一点 所以现在我的问题是@content在哪里定义它是div容器并且有一些高度和重量而且全部? 我无法理解。请帮我。 请在下面找到我的自定义代码

@(title: String)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
    </head>


<body>

<div id="container" style="width:500px">

<div id="header" style="background-color:#FFA500;">
<h1 style="margin-bottom:0;">Main Title of Web Page</h1></div>

<div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
<b>Menu</b><br>
HTML<br>
CSS<br>
JavaScript</div>

<div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
@content</div>

<div id="footer" style="background-color:#FFA500;clear:both;text-align:center;">
Copyright © W3Schools.com</div>






</body>


</html>

1 个答案:

答案 0 :(得分:0)

<强>简介

从播放模板文档中的Template parameters开始,描述第一行的含义。在这里,我们看到需要两个参数组。

两个参数组是:

  1. 包含标题
  2. String参数
  3. 包含一些HTML内容的Html参数
  4. <强>用法

    要使用此模板,必须提供两个参数组。在helloworld应用程序的上下文中,它从app/views/index.scala.html调用,如下所示:

    @main(title = "The 'helloworld' application") {
      <h1>Configure your 'Hello world':</h1>
      ... more HTML elided
    }
    

    此模式在http://www.playframework.com/documentation/2.2.x/ScalaTemplateUseCases中描述,其中HTML被注入模板。

    • main.scala.html包含模板(content包含要注入的HTML)。
    • index.scala.html包含注入此模板的示例。

    请注意,调用@main(...)会调用main.scala.html中定义的模板。同样,调用@my_template(...)会调用my_template.scala.html中定义的模板。

    在这种情况下,表单的HTML在index.scala.html

    中定义

    调用模板

    最后,从控制器调用根模板。对于helloworld应用程序,index.scala.html中定义的模板由代码

    调用
    def index = Action {
      Ok(html.index(helloForm))
    }
    

    这是表单对象注入模板的地方。