zoukankan      html  css  js  c++  java
  • Play 内置模板标签(1.2.3版本)http://www.anool.net/?p=617

    a标签: 用来插入一个连接到控制器方法的html link。如下:

    #{a @Application.logout()}Disconnect#{/a}
    模板内容被解析后变成:

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

    authenticityToken标签: 用来生成一个包含token信息的可以放到任何form的隐藏域。用来防止跨站点的请求伪造攻击。

    #{authenticityToken /}
    模板内容被解析后变成:

    <input type="hidden" name="authenticityToken"

    value="1c6d92fed96200347f06b7c5e1a3a28fa258ef7c">
    cache标签:把标签内容用play.cache.Cache API来缓存起来。缓存的key根据所使用标签参数生成,如下:

    #{cache 'startTime'}

    ${new java.util.Date()}

    #{/cache}
    当不指定时间参数时,标签内容会被永久缓存。你也可以通过for参数来指定一个到期时间。

    #{cache 'currentTime', for:'3s'}

    ${new java.util.Date()}

    #{/cache}
    doLayout标签: 在模板继承时被使用。用来插入一个子模板的内容。

    <!-- common header here -->

    <div id="content">

    #{doLayout /}

    </div>

    <!-- common footer here -->
    else标签: 条件判断标签

    #{if user}

    Connected user is ${user}

    #{/if}

    #{else}

    Please log in

    #{/else}
    else标签页能配置list标签时候,使得当list为空时,显示特殊信息

    #{list items:task, as:'task'}

    <li>${task}</li>

    #{/list}

    #{else}

    Nothing to do...

    #{/else}
    elseif标签: 也能喝list配合使用

    #{if tasks.size() > 1}

    Busy tasklist

    #{/if}

    #{elseif tasks}

    One task on the list

    #{/elseif}

    #{else}

    Nothing to do

    #{/else}

    error标签: 用来输出Validator验证错误的标签。可以再参数中指定被验证的项目。

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

    #{error 'contact.street',  field:'contact.address'/}

    #{error 'contact.city',    field:'contact.address'/}

    #{error 'contact.country', field:'contact.address'/}

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

    errors标签: 包含所有Validator验证错误的标签。可以如下遍历:
    <ul>
    #{errors}
    <li>${error}</li>
    #{/errors}
    </ul>
    在标签内部可以使用如下的隐含参数:

    • 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

    <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>

    field标签: 是一个基于不要老是重复自己精神的帮助器,如下使用。
    使用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>

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

    #{i18n /}
    然后在Javascript中可以如下使用

    alert(i18n('hello_world'));

    alert(i18n('hello_someone', 'John'));
    你也可以使用通配符来限制使用某部分信息

    #{i18n keys:['title', 'menu.*'] /}
    if标签
    ifError标签:当指定字段有Validation验证错误时,显示标签内容。
    ifErrors标签
    ifnot标签
    include标签:包含另外一个模板文件。所有在当前模板中使用的变量都能在子模板中直接使用。
    jsAction标签:

    <script type="text/javascript">

    var showUserAction = #{jsAction @Users.show(':id') /}

    var displayUserDetail = function(userId) {

    $('userDetail').load( showUserAction({id: userId}) )

    }

    </script>
    list标签
    option标签

    #{option user.id} ${user.name} #{/option}

    <option value="42">jto</option>
    script标签
    render标签: 对指定的模板文件进行渲染操作。参数路径是相对路径,相对于/aap/views

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

    ${'&'}

    #{verbatim}${'&'}#{/verbatim}
    第一行输出&,而第二行输出&

  • 相关阅读:
    LeetCode之“树”:Binary Tree Preorder && Inorder && Postorder Traversal
    LeetCode之“树”:Binary Tree Level Order Traversal && Binary Tree Level Order Traversal II
    LeetCode之“树”:Balanced Binary Tree
    LeetCode之“树”:Sum Root to Leaf Numbers
    LeetCode之“树”:Validate Binary Search Tree
    LeetCode之“树”:Path Sum && Path Sum II
    LeetCode之“树”:Symmetric Tree && Same Tree
    TCP中的MSS解读(转)
    IP协议详解(转)
    TCP 的那些事儿(上)(转)
  • 原文地址:https://www.cnblogs.com/zhiji6/p/4444717.html
Copyright © 2011-2022 走看看