我想在velocity Html模板中访问java.util.EnumMap
。
enum Test {
HUMAN,
ANIMAL;
}
EnumMap<Test, Integer> map = new EnumMap<>(Test.class);
map.put(Test.HUMAN, 100);
map.put(Test.ANIMAl, 0);
responseData.setMap(map);
在html ....
$!{responseData.(HUMAN)}; //dont work.
Velocity模板只能通过String或Number键获取Map的值吗?
答案 0 :(得分:1)
以下是我对Velocity
和java枚举(我称之为vc
是VelocityContext
)的肯定:您可以在上下文中放置枚举值并在速度中正常使用它模板(包括EnumMap
的关键字):
vc.put("human", Test.HUMAN);
map.put(Test.HUMAN, 100)
vc.put("map", map)
$map[$human]
提供100
$human.name()
提供HUMAN
$human.ordinal()
提供0
但我发现在模板中没有直接使用$Test.HUMAN
的解决方案(vc.put("Test", Test.class)
已被接受但模板$!{Test.HUMAN}
为空)。