• Freemarker 中的哈希表(Map)和序列(List)


    freemarlker中的容器类型有:

    • 哈希表:是实现了TemplateHashModel或者TemplateHashModelEx接口的java对象,经常使用的实现类是SimpleHash,该类实现了TemplateHashModelEx接口。从内部讲它使用一个java.util.Hash类型的对象存储子变量。
    • 序列:是实现了TemplateSequenceModel接口的Java对象。经常使用的实现类是SimpleSequence,该类内部使用一个java.util.List类型的对象存储它的子变量。
    • 集:是实现了TemplateCollectionModel接口的java对象。通常使用的实现类是SimpleCollection。

    模板文件中哈希表的相关操作:

    创建一个map,注意key只能是字符串
    <#assign testMap={'test1':2335, 'test2':23445}/>
    
    获取map中的值
    ${testMap['test1']}
    
    获取map长度
    ${testMap?size}
    
    获取map的keys
    <#assign  keys=testMap?keys/>
    遍历map 首选获取key的集合
    <#list keys as key>
      key:${key}-value:${testMap['${key}']}
    </#list>
    
    直接遍历map的第二种方式
    <#list testMap?keys as key>
      key:${key}--value:${testMap['${key}']}
    </#list>
    
    直接遍历map的values
    <#list testMap?values as value>
      ${value}
    </#list>
    

      

      

    模板文件中序列的相关操作:

    第一种定义序列的方式
    <#assign nums=[1,2,3,4,5,77,8,99]/>
    
    获取序列的长度
    ${nums?size}
    
    根据索引获取序列中的值
    ${nums[2]}
    
    使用list指令遍历序列
    <#list nums as num>
        ${num}
        获取当前元素在序列中的索引
        ${num_index}
    </#list>
    
    第二种定义序列的方式,定义连续的序列,
    <#assign nums=12..99/>
    这种方式定义的序列的内容是12到99,
    
    序列还可以进行拆分
    <#assign nums1=nums[1..10]/>
    

      

  • 相关阅读:
    pytest 框架生成 pytest
    pytest 之数据驱动参数化:pytest.mark.parametrize
    web 网站表单测试、搜索查询测试、删除测试、数据库测试知识点
    pytest 之 fixture 的前置后置功能
    pytest 框架之pytest-html报告生成
    Initialization of bean failed; nested exception is java.lang.
    使用jmeter测试Oracle&&MySQL数据库性能
    jmeter的日常特殊参数化
    压测出现各种奇葩问题,求围观
    weblogic性能调优
  • 原文地址:https://www.cnblogs.com/LionheartCGJ/p/7299849.html
Copyright © 2020-2023  润新知