Play framework 2.0 -模板引擎
#模板引擎
?
1.基于Scala的类型安全的模板引擎
?
Play2.0的有个新的基于Scala的十分强大的模板引擎,它的设计灵感来自于ASP.NET的Razor。
具体来说:
a.紧凑、表现力、流畅:它最大限度的减少了一个文件中所需字符和按键的数量,使得可以快速流畅的编码。
不像大多数模板语法,你不需要打断你的编码,在HTML中来显示的表明服务代码块。
解析器能聪明的推断出它们。这使得代码紧凑,语法干净流畅,编码快速、有趣。
b.容易学习:它可以用最少的概念让你迅速成为生产力。您可以使用简单的Scala的结构和所有现有的HTML技能。
c.不是一种新的语言:我们有意识地选择了不创造一门新的语言。相反,我们想使Scala开发人员可以使用他们现有的Scala语言技能,
并提供一个模板标记的语法,使HTML构建工作流程。
d.任何文本编辑器中编辑:它不需要特定的工具,使您能够使用任何普通的文本编辑器都很有工作效率。
?
注意:尽快模板引擎使用Scala作为表现语言,但这对于Java开发者并不是问题。你尽可以把Scala当Java来使用。
记住,模板中不是写复杂逻辑的地方,不应该在模版里写复杂的Scala代码。
使用后缀语法定义参数类型。泛型类型定义使用[]符号,而不是通常Java语法中的<> 。例如,你写的List[String],与Java中的List<String>是相同的。
?
2.概述
?
Play的Scala模板是个包含了小块Scala代码的简单文本文件。模板可以生成任意的文本格式,如HTML,XML或CSV。
模板系统是为了HTML开发者能舒服的工作,允许前后端开发这容易使用模板而设计的。
模板根据一个简单的命名规约被编译为标准的Scala函数。如果你创建了一个views/Application/index.scala.html的模板文件,
那么它会生成一个包含一个render()方法的类-views.html.Application.index。
下面是一个简单的模板:
@(customer: Customer, orders: List[Order])
?注意:在模版中以这样的方式申明代码块有时候很有用,但是记着,模板不是写复杂逻辑的最佳地方。
把它写在Java类中通常更好。
?
?
8.声明可复用值
?
可以用defining帮助定义作用域值:
?
?9.导入语句
?
可以在模板或字模板的开头导入任意东西:
?
<h1>Home</h1> <div id="side"> @common.sideBar()</div>?