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]/>

  

 

转载于:https://www.cnblogs.com/LionheartCGJ/p/7299849.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值