表4 Play 框架提供的标签
标签 | 说明 |
a | 用来生成指向控制器中动作方法的 HTML 链接元素。如 #{a @Application.index()} 首页 #{/a} 。 |
if、ifnot 、elseif 和 else | 用来进行条件判断。 |
set 和 get | 用来设置和获取可以在模板中使用的变量。如 #{set email:'alex@example.org'} 设置了变量 email 的值,可以通过 #{get 'email'} 来获取。 |
script | 用来生成一个 <script> 元素引用 /public/javascripts 目录下的 JavaScript 文件。如 #{script 'dojo.js'} 引用 /public/javascripts/dojo.js 文件。 |
stylesheet | 作用与 script 类似,不同的是使用 <link> 元素来引用 /public/stylesheets 目录下的 CSS 文件。 |
list | 用来遍历一个对象集合。如 #{list items:notes, as:'note'} 用来遍历对象集合 notes 。循环体中的每个对象用变量 note 来引用。在循环体的代码中可以引用一些预定义的变量。这些变量有固定的名称,但是会以循环体中的对象变量名作为前缀。在上面的例子中是 note_ 。如 note_index 表示当前对象在集合中的序号;note_isFirst 表示是否是集合中的第一个对象;note_isLast 表示是否是集合中的最后一个对象;note_parity 表示当前对象在集合中序号的奇偶值,可能是 even 和 odd 。 |
i18n | 用来使得支持国际化的消息文件可以用 JavaScript 来访问。在 JavaScript 代码中可以 i18n() 方法来访问。如 i18n('app_title') 。 |
errors | 用来遍历验证错误的集合。使用方式与 list 类似,循环体中使用的对象变量名称是 error 。 |
form | 用来生成 HTML <form> 元素。 |
verbatim | 禁用模板中的 HTML 转义功能。 |
include | 在当前模板中引入另一个模板。如 #{include 'test.html'} 。 |
extends和 doLayout | extends使得当前的模板继承自另外一个模板。doLayout 用来在父模板中调用子模板。 |
在模板中可以使用来自不同地方的变量。首先是在模板生成的时候,由控制器中的动作方法通过 renderArgs 对象来添加的。如 renderArgs.put("username", "Alex") 就把一个变量 username 添加到了模板中。其次是一些隐含的变量,如 request 表示当前的 HTTP 请求,session 表示当前的会话,params 表示请求中的参数和 out 表示用来输出响应的 java.io.Writer 对象。最后就是可以通过 #{set} 来设置变量。