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]/>
Freemarker 中的哈希表(Map)和序列(List)的更多相关文章
- 理解Golang哈希表Map的元素
目录 概述 哈希函数 冲突解决 初始化 结构体 字面量 运行时 操作 访问 写入 扩容 删除 总结 在上一节中我们介绍了 数组和切片的实现原理,这一节会介绍 Golang 中的另一个集合元素 - 哈希 ...
- [PHP内核探索]PHP中的哈希表
在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...
- Delphi 中的哈希表: THashedStringList
转自万一博客 Delphi 中的哈希表: THashedStringList unit Unit1; interface uses Windows, Messages, SysUtils, Var ...
- Python 中的哈希表
Python 中的哈希表:对字典的理解 有没有想过,Python中的字典为什么这么高效稳定.原因是他是建立在hash表上.了解Python中的hash表有助于更好的理解Python,因为Pytho ...
- C++ STL中哈希表Map 与 hash_map 介绍
0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能.例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华 ...
- OVS 中的哈希表: shash
shash出现在OVS的代码中,定义如下: struct hmap_node { size_t hash; struct hmap_node * next; }; struct ...
- [转]:Delphi 中的哈希表(1): THashedStringList
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- Delphi 中的哈希表(二)—— TStringHash
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- [CareerCup] 13.2 Compare Hash Table and STL Map 比较哈希表和Map
13.2 Compare and contrast a hash table and an STL map. How is a hash table implemented? If the numbe ...
随机推荐
- 九度oj 题目1153:括号匹配问题
题目描述: 在某个字符串(长度不超过100)中有左括号.右括号和大小写字母:规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配.写一个程序,找到无法匹配的左括号和右括 ...
- 九度oj 题目1017:还是畅通工程
题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- 07-复习数组和简单api
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- gitlab简介配置和参数修改
一.Gitlab基本简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,可通过Web界面进行访问公开的或者私人项目,非常适合在团队内部使用. 在gitlab中有三个版本, ...
- 【二分+扫描线乱搞】B. Producing Snow
注意二分写法... http://codeforces.com/problemset/problem/923/B #include<cstdio> #include<string.h ...
- bzoj 1818 Cqoi2010 内部白点 扫描线
[Cqoi2010]内部白点 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1126 Solved: 530[Submit][Status][Disc ...
- Nastya Studies Informatics
Nastya Studies Informatics time limit per test 1 second memory limit per test 256 megabytes in ...
- 说说icon图标
咳咳,其实我是想copy过来的,然而,他竟然是用代码写的图标... (正经脸)话说icon图标是一种网页中常用图标的一种,网络上有各式各样的应用案例,在此就不多啰嗦了.其实我也不过是用着现成的而已,所 ...
- [Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)
传送门 #1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Someti ...
- 标准C程序设计七---26
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...