Play 内置模板标签(1.2.3版本)

[url=http://www.playframework.org/documentation/1.2.3/tags]Play framework 1.2.3 Built-in template tags [/url]

[b]a标签[/b]: 用来插入一个连接到控制器方法的html link。如下:
#{a @Application.logout()}Disconnect#{/a}

模板内容被解析后变成:
<a href="/application/logout">Disconnect</a>

如果要调用的控制器方法没有任何可以以GET方法调用的路由信息,那么Play框架会自动地生成一个隐藏的form,用户点击link后,这个form被被提交到后台。

[b]authenticityToken标签[/b]: 用来生成一个包含token信息的可以放到任何form的隐藏域。[color=red]用来防止跨站点的请求伪造攻击[/color]。
#{authenticityToken /}

模板内容被解析后变成:
<input type="hidden" name="authenticityToken"
value="1c6d92fed96200347f06b7c5e1a3a28fa258ef7c">

[b]cache标签[/b]:把标签内容用play.cache.Cache API来缓存起来。缓存的key根据所使用标签参数生成,如下:
#{cache 'startTime'}
${new java.util.Date()}
#{/cache}

当不指定时间参数时,标签内容会被永久缓存。你也可以通过for参数来指定一个到期时间。
#{cache 'currentTime', for:'3s'}
${new java.util.Date()}
#{/cache}

[b]doLayout标签[/b]: 在模板继承时被使用。用来插入一个子模板的内容。
<!-- common header here -->
<div id="content">
#{doLayout /}
</div>
<!-- common footer here -->

[b]else标签[/b]: 条件判断标签
#{if user}
Connected user is ${user}
#{/if}
#{else}
Please log in
#{/else}

[color=red]else标签页能配置list标签时候,使得当list为空时,显示特殊信息[/color]
#{list items:task, as:'task'}
<li>${task}</li>
#{/list}

#{else}
Nothing to do...
#{/else}

[b]elseif标签[/b]: 也能喝list配合使用

#{if tasks.size() > 1}
Busy tasklist
#{/if}

#{elseif tasks}
One task on the list
#{/elseif}

#{else}
Nothing to do
#{/else}


[b]error标签[/b]: 用来输出Validator验证错误的标签。可以再参数中指定被验证的项目。
#{error 'user.name'/}

你也可以用可选的field参数来使用另外一个项目的错误消息。这在当你要在多个项目之间使用相同的错误消息时非常有用,如下
#{error 'contact.street',  field:'contact.address'/}
#{error 'contact.city', field:'contact.address'/}
#{error 'contact.country', field:'contact.address'/}


[b]errorClass标签[/b]:当通过标签参数指定的field有验证错误时,输出这个errorClass,这在验证错误时要设置一个特殊的CSS class时非常有用。
<input name="name" class="#{errorClass 'name'/}">
等价于
<input name="name" class="${errors.forKey('name') ? 'hasError' : ''}">

[b]errors标签[/b]: 包含所有Validator验证错误的标签。可以如下遍历:
<ul>
#{errors}
<li>${error}</li>
#{/errors}
</ul>
在标签内部可以使用如下的隐含参数:
[list]
[*]error, the error
[*]error_index, the error’s index, starting at 1
[*]error_isLast, true for the last element
[*]error_isFirst, true for the first element
[*]error_parity, alternates between odd and even
[/list]

<table>
<tr><th>#</th><th>Error</th></tr>
#{errors}
<tr class="${error_parity}"><td>${error_index}</td><td>${error}</td></tr>
#{/errors}
</table>

也可以使用可选的field 参数,或者默认参数,来过滤显示指定项目的验证错误

<ul>
#{errors 'myField'}
There where errors with the field myField<br />
<li>${error}</li>
#{/errors}
</ul>


[b]field标签[/b]: 是一个基于不要老是重复自己精神的帮助器,如下使用。
使用field字段之前:
<p>
<label>&{'user.name'}</label>
<input type="text" id="user_name" name="user.name" value="${user?.name}" class="${errors.forKey('user.name') ? 'has_error' : ''}">
<span class="error">${errors.forKey('user.name')}</span>
</p>

使用field字段以后:
#{field 'user.name'}
<p>
<label>&{field.name}</label>
<input type="text" id="${field.id}" name="${field.name}" value="${field.value}" class="${field.errorClass}">
<span class="error">${field.error}</span>
</p>
#{/}

[b]form标签[/b]
[b]get标签[/b]
[b]i18n标签[/b]:为了[color=red]在Javascript中使用国际化消息[/color]的标签,如下使用
首先在要使用国际化消息的模板或者页面中增加
#{i18n /}

然后在Javascript中可以如下使用
alert(i18n('hello_world'));
alert(i18n('hello_someone', 'John'));

你也可以使用通配符来限制使用某部分信息
#{i18n keys:['title', 'menu.*'] /}

[b]if标签[/b]
[b]ifError标签[/b]:当指定字段有Validation验证错误时,显示标签内容。
[b]ifErrors标签[/b]
[b]ifnot标签[/b]
[b]include标签[/b]:包含另外一个模板文件。所有在当前模板中使用的变量都能在子模板中直接使用。
[b]jsAction标签:[/b]
<script type="text/javascript">
var showUserAction = #{jsAction @Users.show(':id') /}

var displayUserDetail = function(userId) {
$('userDetail').load( showUserAction({id: userId}) )
}
</script>

[b]list标签[/b]
[b]option标签[/b]
#{option user.id} ${user.name} #{/option}
<option value="42">jto</option>

[b]script标签[/b]
[b]render标签[/b]: 对指定的模板文件进行渲染操作。参数路径是相对路径,相对于/aap/views
#{render 'Application/other.html'/}

[b]select标签[/b]
[b]set标签[/b]
[b]stylesheet标签[/b]
[b]verbatim标签[/b]:对标签内容禁用html转移操作。 类似与Java扩张中的raw()方法。如下
${'&'}
#{verbatim}${'&'}#{/verbatim}

第一行输出&,而第二行输出&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值