play 2.0 中的模板引擎直接来自 play 1.0 scala 模块。如果您仍然想知道像 Scala 这样的函数式语言能带来什么好处,那么这肯定是它的亮点领域之一。
示范:
在 scala 语法中,标签只不过是函数调用。有趣的是,html 片段本身被视为函数,允许最强大的替换结构。
让我们定义一个名为的 html 页面mytag.scala.html
文件:apps/views/mytags/mytag.scala.html
@(level:String = "error", index: Int)(body: (String) => Html)
@level match {
case "success" => {
<p class="success" index="@index">
@body("green")
</p>
}
case "warning" => {
<p class="warning" index="@index">
@body("orange")
</p>
}
case "error" => {
<p class="error" index="@index">
@body("red")
</p>
}
}
上面的标签采用 2 个不同参数组中的 3 个参数:
- 级别,由字符串表示(默认为“error”)
- An index
- 最后是一个名为 body 的函数,它接受一个字符串参数并返回 HTML 代码。请注意,body 是在其自己的参数组中定义的。它相当于我们在 j2ee 中所知道的jsp片段.
现在让我们看看如何使用这个标签:
@import views.mytags._
@mytag("error",2) { color =>
Oops, something is <span style="color:@color">wrong</span>
}
在我们使用标签(或函数)之前,我们需要让 Play 知道它的位置:这就是import陈述。请注意,只要调整导入位置,标记文件的位置(路径)就无关紧要,就像 Java 包一样。
遵循呼叫本身,这很简单。但请注意,我们将参数化的 html 片段传递给标签。
有关更多详细信息,您可以在此处找到 scala 模板文档URL http://scala.playframework.org/modules/scala-0.9.1/templates
Play 2.0 最终将附带自己的文档。