我是新作品。我一直在阅读提供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>
答案 0 :(得分:0)
<强>简介强>
从播放模板文档中的Template parameters开始,描述第一行的含义。在这里,我们看到需要两个参数组。
两个参数组是:
String
参数
Html
参数<强>用法强>
要使用此模板,必须提供两个参数组。在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))
}
这是表单对象注入模板的地方。