• Freemarker常用技巧(二)


    1 list、break指令
    <#list sequence as item>
      ...
    </#list>
    tem_index:当前变量的索引值.
    item_has_next:是否存在下一个对象.
    <#list ["星期一","星期二","星期三","星期四","星期五","星期六"] as x>
    ${x_index + 1}.${x}
    <#if x_has_next>,</#if>
    <#if x="星期四"><#break></#if>
    </#list>
    输出结果:
    1.星期一,
    2.星期二,
    3.星期三,
    4.兴趣四,
    2 import指令
    <#import path as mapObject>
    path:指定要被导入的模板文件.
    mapObject:是一个Map对象.
    意思:将path路径中的变量都放在mapObject中.
    例子:<#import "/lib/common.ftl" as com>
    3 宏的基本用法
    例如:
    <#macro greet>
    <font size="+2"> Hello JOE!</font>
    </#macro>
    使用时:
    <@greet></@greet>
    如果没有体内容也可以用
    <@greet />
    可以在宏定义之后定义参数,宏参数是局部变量,只在宏定义中有效。如:
    <#macro greet person>
    <font size="+2"> Hello ${person}!</font>
    </#macro>
    使用时:
    <@greet person="emma"> and <@greet person="LEO">
    输出为:
    <font size="+2"> Hello emma!</font>
    <font size="+2"> Hello LEO!</font>
    注意:宏的参数是FTL表达式,所以,person=emma和上面的例子中具有不同的意义,这意味着将变量emma的值传给person,这个值可能是任意一种数据类型,甚至是一个复杂的表达式。
    宏可以有多个参数,使用时参数的次序是无关的,但是只能使用宏中定义的参数,并且对所有参数赋值。如:
    <#macro greet person color>
    <font size="+2" color="${color}"> Hello ${person}!</font>
    </#macro>
    使用时:
    <@greet color="black" person="emma" />正确
    <@greet person="emma" />错误,color没有赋值,此时,如果在定义宏时为color定义缺省值<#macro greet person color="black">这样的话,这个使用方法就是正确的。

  • 相关阅读:
    Cocos Creator Editor 第一个编辑器扩展(扩展菜单)
    Rider 设置
    unity 使用GameObject.SetActive(true)激活对象时,会在SetActive内部调用Awake和OnEnable函数
    unity/C# 结构体属性使用set和get访问器应注意的问题
    unity 自定义AssetImporter导入指定资源
    Duilib部分源码解析
    TreeView树形控件的使用
    JQuery 文档资源收集
    排序和搜索(一)插入排序系列
    字符相关类型和编码概念
  • 原文地址:https://www.cnblogs.com/cz-xjw/p/4987157.html
Copyright © 2020-2023  润新知