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的更多相关文章

随机推荐

  1. ERP,SCM,CRM,BRP,OMS,WMS 企业管理的6大核心系统

    [导读]:人体共有八大系统:运动系统.神经系统.内分泌系统.循环系统.呼吸系统.消化系统.泌尿系统.生殖系统.这些系统协调配合,使人体内各种复杂的生命活动能够正常进行. 同理,企业要想健康的运转,长久 ...

  2. 总结一些js自定义的函数

    1.dayin() 作用:将id为dayin的内容,新建页面并打印,可解决打印某页面中的部分内容的问题. 使用方法:将要打印的内容通过 <span id="dayin"> ...

  3. Axure 蚂蚁设计团队组件库 让交互稿美美"搭"

    Github资源:https://github.com/ant-design/ant-design-pro English | 简体中文 技术实践篇 https://pro.ant.design/do ...

  4. 使用spring AOP获得session的思路

    由于Spring 的AOP面向切面编程,与Servlet容器没有任何关联,所以想要获得Session会话比较麻烦. 当然Struts2同样不依赖Servlet容器,可以在Spring AOP中可以使用 ...

  5. Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199),请尊重他人的辛勤劳动成果,谢谢! 我在上一 ...

  6. 使用TestFlight邀请外部人员測试APP

    怎样使用TestFlight邀请外部人员測试APP 详细过程例如以下: 1.在邀请測试人员的时候.按上线流程打包APP,提交. 2.提交审核,在邀请測试员的时候,你必须先提交审核,苹果会在大约2个工作 ...

  7. C# 类型转换,序列化

    string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转string: stri ...

  8. vue 发送ajax请求

    一. 简介 1.vue本身不支持发送AJAX请求,需要使用vue-resource(vue1.0版本).axios(vue2.0版本)等插件实现 2.axios是一个基于Promise的HTTP请求客 ...

  9. uploadify onSelect

    uploadify onSelect [return false]停止选择 $("#fileEleId").uploadify({ 'width': _option.width, ...

  10. CGROUP相关知识

    安装 CentOS 6 yum install libcgroup CentOS 7 yum install libcgroup-tools 使用 默认情况下有几个控制器可以进行限制,分别是 cpus ...