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

  • 相关阅读:
    单例
    ASIHttpRequest加载网络数据和上传数据功能
    JSONModel
    KVC/KVO
    C中的动态内存分配和释放(free)
    IOS开发中Xcode一些使用技巧,快捷键的使用
    Struts2文件上传
    Struts2的输入校验
    struts2类型转换中的错误处理
    struts2自定义类型转换器
  • 原文地址:https://www.cnblogs.com/moli-/p/6479164.html
Copyright © 2020-2023  润新知