Freemarker有两种集合数据类型,列表和hashmaps有没有办法迭代hashmap键,就像我们对列表一样?
所以,如果我有一个带数据的var,那就说:
user : {
name : "user"
email : "looser@everything.com"
homepage : "http://nosuchpage.org"
}
Run Code Online (Sandbox Code Playgroud)
我想用它们的值打印所有用户的属性.这是无效的,但目标很明确:
<#list user.props() as prop>
${prop} = ${user.get(prop)}
</#list>
Run Code Online (Sandbox Code Playgroud) 以下代码不起作用,因为Freemarker似乎将[]中的表达式的值转换为String,然后将其用作键,这不是实际预期的.
准备模板模型:
Map<MyEnum, Object> myMap;
myMap.put(MyEnum.FOO, "Foo");
myMap.put(MyEnum.BAR, "Bar");
templateModel.put("myMap", myMap);
Run Code Online (Sandbox Code Playgroud)
my.ftl:
<#list myMap?keys as key>
<#assign value = myMap[key]>
<li>${key} = ${value}</li>
</#list>
Run Code Online (Sandbox Code Playgroud)
在Freemarker文档中,它描述了如何访问Enum本身,但我没有找到任何关于如何使用Enum作为键从哈希值中获取值的信息.
谢谢.