参考:http://freemarker.foofun.cn/dgui_quickstart_basics.html

assign:

  使用该指令你可以创建一个新的变量, 或者替换一个已经存在的变量

attempt, recover:

  如果你想让页面成功输出内容,尽管它在页面特定位置发生错误也这样, 那么这些指令就是有用的。如果一个错误在 attempt block 执行期间发生, 那么模板执行就会中止,但是 recover block 会代替 attempt block 执行。 如果在 attempt block 执行期间没有发生错误, 那么 recover block 就会忽略。

compress:

  当你使用了对空白不敏感的格式(比如HTML或XML) 时压缩指令对于移除多余的 空白 是很有用的。它捕捉在指令体(也就是在开始标签和结束标签中)中生成的内容, 然后缩小所有不间断的空白序列到一个单独的空白字符。 如果被替代的序列包含换行符或是一段空间,那么被插入的字符也会是一个 换行符。 开头和结尾的不间断的空白序列将会完全被移除。

escape, noescape:

  当你使用escape指令包围模板中的一部分时,在块中出现的插值 (${...}) 会和转义表达式自动结合。这是一个避免编写相似表达式的很方便的方法。 它不会影响在字符串形式的插值(比如在 <#assign x = "Hello ${user}!">)。而且,它也不会影响数值插值 (#{...})。

flush:

  将内容从缓冲区刷新到终端

function, return:

  自定义函数

globle:

  该指令和 assign 相似,但是被创建的变量在所有的命名空间中都可见,但又不会存在于任何一个命名空间之中。

if, else, elseif:

  条件分支指令

import:

  导入一个新的模板,并设置新的命名空间

include:

  包含一个新的模板

list, else, items, sep, break:

  list指令,用于序列的遍历

local:

  创建局部变量

macro, nested, return:

  自定义宏

<#macro name param1 param2 ... paramN>
...
<#nested loopvar1, loopvar2, ..., loopvarN>
...
<#return>
...
</#macro>
  • name: 宏变量的名称,它不是表达式。和 顶层变量 的语法相同,比如 myMacro 或 my\-macro。 然而,它可以被写成字符串的形式,如果宏名称中包含保留字符时,这是很有用的, 比如 <#macro "foo~bar">...。 注意这个字符串没有扩展插值(如 "${foo}")。
  • param1, param2,等...: 局部变量 的名称,存储参数的值 (不是表达式),在 = 号后面和默认值(是表达式)是可选的。 默认值也可以是另外一个参数,比如 <#macro section title label=title>。参数名称和 顶层变量 的语法相同,所以有相同的特性和限制。
  • paramN, 最后一个参数,可能会有三个点(...), 这就意味着宏接受可变数量的参数,不匹配其它参数的参数可以作为最后一个参数 (也被称作笼统参数)。当宏被命名参数调用, paramN 将会是包含宏的所有未声明的键/值对的哈希表。当宏被位置参数调用, paramN 将是额外参数的序列。 (在宏内部,要查找参数,可以使用 myCatchAllParam?is_sequence。)
  • loopvar1, loopvar2等...: 可选的,循环变量 的值, 是 nested 指令想为嵌套内容创建的。这些都是表达式。

  return 和 nested 指令是可选的,而且可以在 <#macro ...> 和 </#macro> 之间被用在任意位置和任意次数。

  没有默认值的参数必须在有默认值参数 (paramName=defaultValue) 之前

<#macro test foo bar baaz>
Test text, and the params: ${foo}, ${bar}, ${baaz}
</#macro>
<#-- call the macro: -->
<@test foo="a" bar="b" baaz=5*5-2/>
<#macro test foo bar="Bar" baaz=-1>
Test text, and the params: ${foo}, ${bar}, ${baaz}
</#macro>
<@test foo="a" bar="b" baaz=5*5-2/>
<@test foo="a" bar="b"/>
<@test foo="a" baaz=5*5-2/>
<@test foo="a"/>

noparse:

  不会解析该指令包裹的内容,原样输出。

nt:

  "不要削减"。该指令禁用行中出现的 剥离空白。

setting:

  配置freemarker,支持的设置有:

  • locale
  • umber_format
  • boolean_format
  • date_format, time_format, datetime_format
  • time_zone
  • sql_date_and_time_time_zone
  • url_escaping_charset
  • output_encoding
  • classic_compatible

switch, case, default, break:

  同Java swtich分支一样。

t, lt, rt:

  • t (整体削减):忽略本行中首和尾的所有空白。
  • lt (左侧削减):忽略本行中首部所有的空白。
  • rt (右侧削减):忽略本行中尾部所有的空白。

FreeMarker学习(常用指令)的更多相关文章

  1. docker学习常用指令---第五章节

    前面我们了解了docker的基本概念,和docker镜像,端口相关的内容.在具体的实际操作过程中,我们需要了解一些相关的docker操作指令. 一.Docker save指令 指令功能:将指定镜像保存 ...

  2. Freemarker的常用技巧总结

    Freemarker的常用技巧总结 Freemarker视频教程 1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. ...

  3. [转] Freemarker的常用技巧总结

    1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. <= lte. > gt. >= gte < ...

  4. FreeMarker学习教程

    copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...

  5. (转)Linux最常用指令及快捷键 Linux学习笔记

    Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...

  6. linux常用指令学习记录

    前言 本文主要为学习贴,用来记录一些 linux上的常用指令 以供参考. 文件内容查看 cat 从上往下阅读文件内容 cat [-AbEnTv] ${FILE_NAME) cat -n /etc/is ...

  7. vue学习(二)Vue常用指令

    2 Vue常用指令 1. vue的使用要从创建Vue对象开始 var vm = new Vue(); 2. 创建vue对象的时候,需要传递参数,是json对象,json对象对象必须至少有两个属性成员 ...

  8. Linux | Linux常用指令学习笔记

    @ 目录 前言 1. Linux目录结构: 2. 运行级别: init.systemctl 3. vim相关快捷键: 4. 开关机相关命令: shutdowm.halt.reboot.sync.log ...

  9. Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍

    一.简介 Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮 ...

  10. Docker学习笔记_Dockerfile常用指令

    Dockerfile常用指令

随机推荐

  1. plsql developer字符集和oracle字符集不一致的解决方法(转)

    如果oracle安装选择的字符集与PLSQL Developer的字符集不同,则打开 PLSQL Developer时会提示字符不一致可能造成问题: 定位到注册表的以下位置: HKEY_LOCAL_M ...

  2. Android opengl 笔记

    1. varying vec2 vTextureCoord; 不能用in vec2 ,varying 表示在vs 和 fs中都可见. 2. android 里面 0 和1 都要打小数点 比如0.0 1 ...

  3. JavaScript-->基础类型和引用类型的区别

    先了解一下数组的基础知识:附代码(数组属于引用类型的对象) <!DOCTYPE html> <html lang="en"> <head> &l ...

  4. JavaScript 的编译原理

    JavaScript 是一门编译语言. JavaScript 的编译是发生在代码执行前的几微米(甚至更短)的事件内,所以 JavaScript 没有其他语言那么多的时间来进行优化. 当 JavaScr ...

  5. shake.js实现微信摇一摇功能

    项目要求实现点击摇一摇图片,图片摇一摇,并且摇一摇手机,图片也要摇一摇. 关于用js怎样实现摇一摇手机图片摇一摇,我在网络上找了一些方法,真正有用的是shake.js. 接下来,上shake.js源码 ...

  6. RocketMQ顺序消息

    rocketmq的顺序消息需要满足2点: 1.Producer端保证发送消息有序,且发送到同一个队列.2.consumer端保证消费同一个队列. 生产端: RocketMQ可以严格的保证消息有序.但这 ...

  7. V.24 V.35 ISDN E1 POS这些常见的广域网接口

    转:http://blog.sina.com.cn/s/blog_bc1c78600101l2ss.html 广域网(Wide Area Network)是一种跨地区的数据通讯网络,通常是一个局域网到 ...

  8. Django学习:创建admin后台管理站点

    Django自带一个后台管理站点,方便我们管理数据.这个界面只给管理员使用,并不对大众开放. 创建管理员用户 py manage.py createsuperuser 如下图所示: 用户名不填的话,默 ...

  9. 十六, k8s集群资源需求和限制, 以及pod驱逐策略。

    目录 容器的资源需求和资源限制 QoS Classes分类 Guaranteed Burstable Best-Effort kubernetes之node资源紧缺时pod驱逐机制 Qos Class ...

  10. String特性之 “字符串驻留池”

    1. 字符串驻留池,就是一块与堆区并行的存放字符串对象的内存区,JVM的驻留池机制规定: 在池中创建一个String对象,第二行会先在池中寻找是否有值与"abc"相同的String ...