如何在velocity html模板中访问枚举Map?

时间:2014-07-21 08:41:48

标签: java enums velocity

我想在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的值吗?

1 个答案:

答案 0 :(得分:1)

以下是我对Velocity和java枚举(我称之为vcVelocityContext)的肯定:您可以在上下文中放置枚举值并在速度中正常使用它模板(包括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}为空)。