模板语法

${client.name}

${client?.name} 不能确定client是否存在的时候?

#{extends /}

#{doLayout /}
#{get}

#{set}

比如

#{extends 'simpledesign.html' /}

#{set title:'A decorated page' /}

Tags: #{tagName /}
#{script 'jquery.js' /}

#{list items:client.accounts, as:'account' } 循环

<li>${account}</li>

#{/list}

Actions: @{…} or @@{…}
<a href="@{Clients.showAccounts(client.id)}">All accounts</a>

注意此时Clients.showAccounts(client.id)没有加引号

<link rel="stylesheet" media="screen" href="@{'/public/stylesheets/main.css'}">

这些其它的public内的资源 需要 ' /public/stylesheets/main.css ' 内部加引号的,特别注意

@{…}相对路径

@@{…}绝对路径

Messages: &{…}

比如 conf/messages 文件里

clientName=The client name is %s

在模板页面里面使用&{…}

<h1>&{'clientName','myname' }</h1>
得到的结果是 <h1>The client name is myname</h1>

Comment: *{…}* 注释
*{**** Display the user name ****}*

%{…}% 类似过去的JSP页面一样在页面里嵌入逻辑
%{ fullName = client.name.toUpperCase()+' '+client.forname; }%

<h1>Client ${fullName}</h1>

To create a hello tag, just create the app/views/tags/hello.html file.

比如创建一个hello标签,只需要建立页面app/views/tags/hello.html

页面内容 Hello from tag!

No need to configure anything. You can use the tag directly:

不需要配置别的东西,你可以直接使用此标签

如: #{hello /}
给自定义标签加参数
比如你在 hello.html 里面 用到 ${_name} name前面加 _
那么
#{hello name:'Bob' /} 可以这样赋值
当然也有默认的唯一参数的时候 arg
Example:

Hello ${_arg}!

And you can call it easily using:
#{hello 'Bob' /}

调用标签体 Invoke tag body
Hello #{doBody /}!

#{hello}
Bob
#{/hello}
这样通过 #{doBody /} Bob 就作为标签体 传入了 自定义标签
默认的模板页面是在 views/tags 目录下,如果再在其下 建立 文件夹 比如 a
则就有了 命名空间 #{a.xxx /}

http://www.anool.net/?p=58

play framework学习笔记之 模板引擎的更多相关文章

  1. Entity Framework 学习笔记(2)

    上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// ...

  2. Entity Framework学习笔记

    原文地址:http://www.cnblogs.com/frankofgdc/p/3600090.html Entity Framework学习笔记——错误汇总   之前的小项目做完了,到了总结经验和 ...

  3. C++学习笔记之模板篇

    title: C++学习笔记之模板篇 tags: c++,c,模板,vector,friend,static,运算符重载,标准模板 --- 一.模板 不管是函数模板还是类模板,在未初始化前都是不占用内 ...

  4. OpenCV 学习笔记(模板匹配)

    OpenCV 学习笔记(模板匹配) 模板匹配是在一幅图像中寻找一个特定目标的方法之一.这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否"相似",当相似度足够 ...

  5. Apache OFBiz 学习笔记 之 服务引擎 二

    加载服务定义文件   ofbiz-component.xml:所有的服务定义文件在每个组件的ofbi-component.xml文件中   加载服务定义 例:framework/common/ofbi ...

  6. Entity Framework学习笔记——错误汇总

    之前的小项目做完了,到了总结经验和更新学习笔记的时间了.开始正题之前先啰嗦一下,对之前的学习目标进行一个调整:“根据代码生成表”与“生成数据库脚本和变更脚本”合并为“Code First模式日常使用篇 ...

  7. Entity Framework学习笔记(二)----CRUD(1)

    请注明转载地址:http://www.cnblogs.com/arhat 这篇文章老魏和大家分享一下Entity Framework的CRUD操作,在这之前呢,老魏先说一下老魏对EF的一个整体的认识, ...

  8. Entity Framework学习笔记(一)

    请注明转载地址:http://www.cnblogs.com/arhat 哈哈!老魏回来了,4月份的内容开始更新了,由于3月份时间都在做项目,没有时间写了,那么4月份老魏会尽可能的多写点东西的.那么4 ...

  9. Entity Framework学习笔记——记一个错误解决方式及思路

    继续之前设定的学习目标前,先来一篇小小的外篇.按照第一篇里的配置方式配置好的工程前两天还能正常工作,昨天却突然无法通过Add-Migration命令进行数据库的升级.错误信息如下: System.Da ...

随机推荐

  1. PHP钩子机制

    什么是钩子 大家想必听过插件,wordpress插件特别多,这个就是用钩子机制实现的. 当代码在运行的过程中,我们预先在运行的几个特殊点里执行一些特殊方法:例如在运行方法(例如Blog::add的ad ...

  2. Get请求中文乱码的几种解决方式

    1.将字符串转码:new String("xxxxx".getBytes("iso-8859-1"),"utf-8")         这种 ...

  3. Quartus II USB-Blaster驱动解决

    Quartus II USB-Blaster驱动解决 之前安装Quartus II 13.0,但FPGA开发板链接的USB-Blaster链接无法被Quartus识别,改装Quartus II 11. ...

  4. js中原型的概念

  5. 组合使用css选择器

    今天看到有网站使用.classA.classB类似的选择器,不知道是否有人和我一样没有用过,所以了解一下,以下记录. 一.用法介绍 在css中.classA.classB指的是一个元素,同时满足cla ...

  6. java - Annotation元数据

    Annotation元数据(一) 一.Annotation究竟是什么? 是java5.0中的新特征 数据的数据(元数据) Annotation和访问修饰符一样,应用于包.类型.构造方法.方法.成员变量 ...

  7. [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  8. debian 学习记录-1 -安装

    之前装ubuntu12. 后来没有继续用,图形界面很不错,没有继续学习原因很多: · 没有基础知识支持(拷贝文件都是用鼠标拖动的) · 图形界面很好,导致没有使用命令行,安装驱动什么的都是靠鼠标点击 ...

  9. About Wisdom

    All human wisdom is summed up in two words --- wait and hope.人类所有的智慧可以归结为两个词---等待和希望. —— Alexandre D ...

  10. hdoj 1213 How Many Tables

    How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...