在freemarker中切换枚举

时间:2011-08-17 08:44:45

标签: java enums freemarker

我认为切换枚举在FreeMarker中会是非常基本的东西,所以我可以这样写:

<!-- Doesn't work -->
Dear
<#switch gender>
    <#case MALE>
        sir
        <#break>
    <#case FEMALE>
        madam
        <#break>
    <#default>
        sir/madam
<#/switch>

但似乎accessing enums是一个丑陋而复杂的问题。是否有一种正确,干净的方式来打开枚举值?我应该以不同的方式在我的模型中存储它吗?

1 个答案:

答案 0 :(得分:15)

您可以使用枚举的字符串值(至少使用默认对象包装器,基本上也可以使用任何其他BeansWrapper变体):

<#switch gender>
   <#case "MALE"> <#-- note the quotes -->
      sir
      <#break>
...

或者如果依赖于toString()是一个问题(可能是),请使用:

<#switch gender.name()>
   <#case "MALE">
      sir
      <#break>
...