freemarker0
assign 用于为该模板页面 创建或替换一个顶层变量 或创建或替换多个顶层变量 列子如下
<#assign name=value [in namespacehash]>,指定一个名为name的变量,变量值为value, in子句用于将创建的name变量放入namespacehash命名空间中
<#assign name[in namespacehash]>capture this</#assign>
<#assign x>
<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n>
${n}
</#list>
</#assign>
${x} 输出:星期一 星期二 星期三 星期四 星期五 星期六 星期天
macro 用户自定义指令 用@符号调用 列子如下
<#macro greet>
<font size="+2">Hello Joe!</font>
</#macro>
使用:<@greet></greet>或<@greet/>
结果:<font size="+2">Hello Joe!</font>
参数-在macro指令中可以在宏变量之后定义参数
例二:
<#macro greet person>
<font size="+2">Hello ${person}!</font>
</#macro>
使用:<@greet person="Fred"/> and <@greet person="Batman"/>
结果: <font size="+2">Hello Fred!</font> and <font size="+2">Hello Batman!</font>
......
${..}只能用于文本部分,不能用于表达式
错误示范: <#if ${isA}>A</#if> 或 <#if "${isA}">A</#if>
应该写成: <#if isA>A</#if>
Map链接运算符
Map对象的连接运算符也是将两个Map对象连接成一个新的Map对象,Map对象的连接运算符是+,如果两个Map对象具有相同的key,则右边的值替代左边的值.看如下的例子如下:
<#assign scores = {"语文":86,"数学":78} + {"数学":87,"Java":93}>
语文成绩是${scores.语文}
数学成绩是${scores.数学}
Java成绩是${scores.Java}
输出结果是:
语文成绩是86
数学成绩是87
Java成绩是93
if指令
这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下:
<#if condition>...
<#elseif condition>...
<#elseif condition>...
<#else> ...
</#if>
例子如下:
<#assign age=23>
<#if (age>60)>老年人
<#elseif (age>40)>中年人
<#elseif (age>20)>青年人
<#else> 少年人
</#if>
输出结果是:青年人
由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免错,使用括号(age>60)
switch,case,default,break指令
这些指令虽然是分支指令,作用类似于Java的switch语句
switch指令的语法结构
<#switch value>
<#case refValue>...</#break>
<#case refValue>...</#break>
<#default>...
</#switch>
list, break指令
list指令是一个迭代输出指令,用于迭代输出数据模型中的集合,list指令的语法格式如下:
<#list sequence as item> ...
</#list>
sequence是一个集合对象,也可以是返回一个集合对象的表达式,item是一个任意的名字,指被迭代输出的集合元素,迭代集合对象时,还包含两个特殊的循环变量:
item_index:当前变量的索引值
item_has_next:是否存在下一个对象
也可以使用<#break>指令跳出迭代
例子如下:
<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x>
${x_index+1}.${x}
<#if x_has_next>,</if>
<#if x="星期四"><#break></#if>
</#list>
freemarker0的更多相关文章
随机推荐
- ubuntu 14.04为/检查磁盘时发生严重错误的解决方法
http://jingyan.baidu.com/article/0aa22375bbffbe88cc0d6419.html
- C++ bool和string转换
直接贴代码吧.用g++能够编译.測试ok #include <iostream> #include <sstream> using namespace std; int mai ...
- spring mvc 返回json的配置
转载自:http://my.oschina.net/haopeng/blog/324934 springMVC-servlet.xml 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- 创建你的第一个Android PHP应用
google的开源移动操作系统Android给智能手机市场带来了风暴.不像Apple,对想要为水果市场(Iphone App Store)提供应用软件的开发者们有着严格的指导原则以及要求,Google ...
- 移动UI设计中需要避免的四种常见用户体验误区
2012年移动应用的下载量超过300 亿,可是智能手机用户平均每周会使用的应用数却大概只有15个.更糟的是,Localytics 的研究表明,大概有22%的应用是见光死,用过一次之后就被束之高阁.既然 ...
- Content Editor Webpart(一)引用JQuery
SharePoint里面自带了一个Content Editor Webpart, 使用这个webpart.能够方便的往页面上加入随意的内容(HTML,css, JS).以此来达到往页面加入自己定义内容 ...
- ubuntu环境下配置jdk
方法1:修改/etc/profile 文件 /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 所有用户 ...
- ARM开发工具软件命令具体解释---嵌入式回归第三篇
先从bootloader開始,由于临时眼下这些都会是裸机程序相关. 本人这里是VMwarm10.0上安装的红帽linux虚拟机.从以下的截图中能够看出 裸机开发流程: 这里先做第三步(第一步第二步已提 ...
- [Jobdu] 题目1348:数组中的逆序对
题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 输入: 每个测试案例包括两行: 第一行包含一个整数n,表示数组 ...
- Linux下使用DD命令测试磁盘读写速度
dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,所以可以用来测试硬盘的读写能力~ 几种常见的DD命令,先看一下区别~ dd bs=6 ...